Asp.net mvc 2 如何解决ASP.NETMVC路由映射冲突?
我在MVC应用程序中映射了两条路线:Asp.net mvc 2 如何解决ASP.NETMVC路由映射冲突?,asp.net-mvc-2,routes,conflict,Asp.net Mvc 2,Routes,Conflict,我在MVC应用程序中映射了两条路线: public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Project",
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Project",
"{controller}/{projectid}/{action}/{id}",
new { controller = "Project", action = "Index", id = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
在大多数情况下,这些都不会带来问题,但我在尝试调用/Account/LogOn视图时遇到了麻烦。我的ActionLink语法如下所示(我尝试了几种变体,包括空路由值等):
浏览此视图会引发404错误(“找不到资源”)。理想情况下,我希望避免大量返工,那么避免这些冲突的最佳方法是什么?您是否尝试过控制器文字的这种变化
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Project",
"Project/{projectid}/{action}/{id}",
new { controller = "Project", action = "Index", id = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
这会吸引人的:而且
但它将传递给第二个rounte。是吗?您是否尝试过控制器文字的这种变化
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Project",
"Project/{projectid}/{action}/{id}",
new { controller = "Project", action = "Index", id = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
这会吸引人的:而且
但它将传递给第二个rounte。是吗?Gaaa!这永远是最简单和最明显的答案。就这样了。谢谢,嘎阿!这永远是最简单和最明显的答案。就这样了。谢谢