ASP.NET MVC – MapRoute与routes.Add(和404s)

前端之家收集整理的这篇文章主要介绍了ASP.NET MVC – MapRoute与routes.Add(和404s)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始使用ASP.NET MVC。

MapRoute和routes.Add有什么区别?
我应该使用MapRoute吗?可以映射多条路线吗?哪个“地图”优先…你叫做第一个还是最后一个?

我想要能够为用户做类似StackOverflow的事情。
但是我希望URL适合此模式:
“User / {domain} / {username}”将路由到UserController

并且对于所有其他请求来执行典型的ASP.NET MVC路由。例如:

  1. routes.MapRoute(
  2. "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = "" }
  3. );

更新:
使用URL:http://localhost:3962/User/MYDOMAIN/BTYNDALL
我收到错误:HTTP 404.您正在寻找的资源(或其一个依赖关系)可能已被删除名称已更改或暂时不可用。

这是我使用的代码

  1. public class MvcApplication : System.Web.HttpApplication
  2. {
  3. public static void RegisterRoutes(RouteCollection routes)
  4. {
  5. routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  6.  
  7. routes.MapRoute(
  8. "User","User/{domain}/{username}",new { controller = "User",action = "Index" }
  9. );
  10.  
  11. routes.MapRoute(
  12. "Default",id = "" }
  13. );
  14.  
  15. }
  16.  
  17. protected void Application_Start()
  18. {
  19. RegisterRoutes(RouteTable.Routes);
  20. }
  21. }

解决方法

您的用户控制器应该有
  1. public class UserController : Controller {
  2. public ActionResult Index(string domain,string username) { return View(); }
  3. }

用户控制器的Index方法中的两个变量从路由中获取

猜你在找的asp.Net相关文章