2013-04-01 3 views
0

В Global.asax.csМогу ли я использовать RouteLink для изменения параметров маршрута в зависимости от линии щелкнул, MVC3

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Menu", PageName="Index" } // Parameter defaults 
     ); 

routes.MapRoute(
      "NewRoute", // Route name 
      "{controller}/{action}/{PageName}", // URL with parameters 
      new { controller = "Home", action = "Menu", PageName = UrlParameter.Optional } // Parameter defaults 
     ); 

Я хочу, чтобы этот параметр PageName быть «Index» только для первой загрузки домашней страницы , После этого по ссылке меню нажмите Мне нужно передать значение параметра PageName, соответствующее ссылке, а не значение «Индекс». Хенс я написал новый MapRoute, где PageName является необязательным, а не «индексом».

Так что в моем _Layout.cshtml

foreach(...) 
{ 
    @Html.ActionLink(item.Title, "Menu", "Home", new { PageName = item.PageName, role = "Admin" }, null) 

} 

В настоящее время для всех ссылок клик только значение «Index» параметра берется, Который является непреднамеренным. Я хочу, чтобы этот «index» был «home» или «aboutUS» или «...» в зависимости от кликов пользователя ссылки.

После некоторого поиска, я обнаружил, что RouteLink может изменить маршрут по умолчанию ...

@Html.RouteLink(item.Title, "NewRoute", new { PageName = item.PageName }) 

В сущности, мне нужно указать DefaultValue для PageName, а также он должен измениться на клики по ссылкам.

Пожалуйста, сообщите, является ли маршрутизация решением этой проблемы.

+1

Вам нужен {id}? – hiddenbyte

+0

no id не является обязательным параметром ... – Jesna

+1

Пожалуйста, дайте вашему вопросу хорошо читаемый заголовок. – abatishchev

ответ

1

В Global.asax.cs, измените {ID} до {} PageName

routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{pagename}", // URL with parameters 
     new { controller = "Home", action = "Menu", PageName="Index" } // Parameter defaults 
    ); 

Нет необходимости добавлять новый маршрут, а также RouteLink не требуется. ActionLink сам работает.

+0

@ Lasse Edsvik: Спасибо за редактирование. – Jesna

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

  • Нет связанных вопросов^_^