#asp.net-mvc #asp.net-mvc-3 #razor #vb.net-2010
#asp.net-mvc #asp.net-mvc-3 #бритва #vb.net-2010
Вопрос:
Я был сделан системой подкачки. Все в порядке. После нажатия 2-й страницы все ссылки на главную страницу меняются.
@Html.ActionLink("Home page", "Index", "Home") //This is standard routing without values.
Я добавил ссылки подкачки в конец страницы.
@Html.ActionLink("2", "Index", "Home", New With {.id = 2}, Nothing) //This works good too.
Моя проблема заключается в том, когда я нажимаю на 2-ю или более страницу (например: www.site.com/Home/Index/2 ) все мои ссылки на главную страницу преобразуются в
<a href="/Home/Index/2">Home page</a>
то же самое.
Как я могу решить эту проблему?
Комментарии:
1. с каким текущим URL-адресом, на котором вы находитесь, у вас возникли проблемы?
2. @Html. Команды ActionLink(«Домашняя страница», «Индекс», «Главная страница») генерируют <a href=»/Home/Index/2″>Домашнюю страницу</a> с теми же значениями.
Ответ №1:
Когда вы нажмете на 2-ю страницу {.id = 2}
, она станет частью ваших RouteData. И потому, что ваша маршрутизация, вероятно, выглядит так: (в Gloabal.asax)
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
ASP.NET MVC будет использовать этот маршрут для сгенерированных ссылок. Таким образом, он будет включать Id = 2. Чтобы исправить это, вам нужно явно переопределить его, когда он не нужен:
@Html.ActionLink("Home page", "Index", "Home", New With {.id = ""}, Nothing)