2014-02-21 2 views
0

Итак, у меня есть маршрут (например, ~/Справка/FAQ). Теперь, если я на любой странице, кроме FAQ, Html.ActionLink работает так, как я ожидал.Html.ActionLink ошибочно поднимает текущие RouteValues ​​

@Html.ActionLink("FAQ", "FAQ", "Help", routeValues:=Nothing, htmlAttributes:=Nothing) 

Но если текущий URL браузер фака страница с атрибутом маршрута идентификатор указан, http://www.example.com/Help/FAQ/56832, то ActionLink выше поднимает текущие routeVaues и делает связь с 56832 прилагается - хотя я в частности, сообщая ActionLink, что я не хочу, чтобы какие-либо параметры routeValues ​​отображались.

Является ли это ошибкой или я делаю что-то неправильно?

ответ

2

Вы ничего не делаете неправильно, ASP.NET MVC неявно использует текущие значения маршрута в HTML-хелперах. Вам придется переписать их:

В C#:

@Html.ActionLink("FAQ", "FAQ", "Help", new { id = null }, null) 

В VB.NET:

@Html.ActionLink("FAQ", "FAQ", Help", routeValues:= New With {.id = Nothing}, htmlAttributes:=Nothing) 
+0

Хотя не указано, что ОП фактически используя VB.NET, пожалуйста, обновите ваш ответ , – jacqijvv

+0

@jacqijvv Выполнено, но я сам не знаком с VB.NET. Может быть, кто-то может подтвердить. –

+0

Это правильный синтаксис, вот пример другого переполнения стека [post] (http://stackoverflow.com/a/11675754/1235792). Надеюсь это поможет. – jacqijvv