2010-02-23 3 views
1

В global.asaxUrlredirect в MVC2

 routes.MapRoute(
      "Test_Default", // Route name 
      "test/{controller}/{action}", // URL with parameters 
      new { } 
     ); 


     routes.MapRoute(
      "Default", 
      "{universe}", 
      new { controller = "notfound", action = "error"} 
     ); 

У меня есть контроллер: Home, содержащий действие: Index Введите URL в браузере: ч ** р: // локальный: 53235/тест/дома/индекс

Внутри index.aspx вид в < тело > тег: Я хочу связать со вторым маршрутом.

<%=Html.RouteLink("Link", new { universe = "MyUniverse" })%>

не должны это сгенерировать ссылку на второй маршрут в Global.asax? Сгенерированный url из приведенного выше: h ** p: // localhost: 53235/test/home/index? Universe = MyUniverse. Я могу только заставить его работать, если я укажу название маршрута: <%=Html.RouteLink("Link", "default", new { universe = "MyUniverse" })%>

Я что-то пропустил?

ответ

0

Как вы обнаружили, вам нужно использовать имя маршрута, если вы хотите создать ссылку на второй маршрут. Первый маршрут всегда будет оцениваться, потому что даже если параметр universe не существует в определении маршрута, он просто передается как аргумент строки запроса.