#c# #asp.net #asp.net-mvc-2 #asp.net-mvc-routing
#c# #asp.net #asp.net-mvc-2 #asp.net-mvc-routing
Вопрос:
Если у меня есть несколько маршрутов, настроенных следующим образом:
context.MapRoute("Route1", "Public/DataCapture/Name", new { controller = "Profile", action = "Name" } );
context.MapRoute("Route2", "Public/DataCapture/Age", new { controller = "Profile", action = "Age" } );
context.MapRoute("Route2", "Public/DataCapture/Amount", new { controller = "Income", action = "Amount" } );
Как я могу генерировать URL-адреса, которые используют путь маршрута, а не фактический путь контроллера / действия?
Например.
Url.Action("Name", "Profile")
Следует сгенерировать «Public / DataCapture / Name», а не «Public / Profile / Name»
Ответ №1:
Попробуйте использовать Url.RouteUrl.
В прошлом, когда у меня возникали проблемы с получением этого для возврата правильного маршрута, обычно это указывало на то, что либо мои маршруты были определены не в правильном порядке, либо я делал что-то, что не позволяло системе маршрутизации соответствовать маршруту, который я намеревался.
Комментарии:
1. Спасибо, кажется, это помогло. Теперь это кажется очевидным. Даже не проверял наличие подобного метода.