Генерация URL-адресов из ASP.NET Маршруты MVC

#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. Спасибо, кажется, это помогло. Теперь это кажется очевидным. Даже не проверял наличие подобного метода.