我刚刚开始使用ASP.NET MVC.
MapRoute和routes.Add有什么区别?我应该只使用MapRoute吗?我可以映射多条路线吗?哪个"地图"优先...那些你先打电话或最后打电话?
我希望能够为StackOverflow做类似的事情.但我希望URL符合这种模式:
"User/{domain}/{username}"将路由到UserController
以及执行典型ASP.NET MVC路由的所有其他请求.例如:
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );
更新:
使用URL时:http:// localhost:3962/User/MYDOMAIN/BTYNDALL
我收到错误:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,其名称已更改,或暂时不可用.
这是我正在使用的代码:
public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "User", "User/{domain}/{username}", new { controller = "User", action = "Index" } ); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); } }
Brannon.. 37
MapRoute()
是一种扩展方法Routes.Add()
.使用MapRoute()
,除非你需要做一些比它允许的更复杂的事情.
路由按照定义的顺序进行评估,因此您首先调用它们.
MapRoute()
是一种扩展方法Routes.Add()
.使用MapRoute()
,除非你需要做一些比它允许的更复杂的事情.
路由按照定义的顺序进行评估,因此您首先调用它们.
您的用户控制器应具有
public class UserController : Controller { public ActionResult Index(string domain, string username) { return View(); } }
从路径中获取用户控制器的Index方法上的两个变量.