2010-08-01 2 views
1

У меня есть два пути, отображенные в моем приложении MVC:Как я должен работать с конфликтом картирования маршрута ASP.Net MVC?

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 
    ); 

} 

Для большей части, они не создают никаких проблем, но я бить тревогу при попытке вызвать/вид LogOn/счета. Мой синтаксис ActionLink выглядит следующим образом (я попробовал несколько вариаций, включая нулевые значения маршрута и такие):

<%= Html.ActionLink("Log On", "LogOn", "Account") %> 

просмотра этой точки зрения возникает ошибку 404 («Ресурс не может быть найден»). В идеале я бы хотел избежать огромного количества переделок, так что было бы лучшим способом избежать этих столкновений?

ответ

1

Вы пробовали этот вариант с буквальным для контроллера?

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 
    ); 
} 

Это поймать: http://localhost/Project/12 и http://localhost/Project/12/Edit и http://localhost/Project/2/View/2

Но было бы передать http://localhost/Account/LogOn ко второму rounte. Да?

+0

Gaaa! Это всегда самые простые и наиболее очевидные ответы. Вот и все. Благодарю. –

Смежные вопросы