Почему Action Link зависит от текущего запроса? - PullRequest
1 голос
/ 12 ноября 2010

Например, когда я посещаю http://www.nerddinner.com/Home/About/,, вкладка О программе указывает на http://www.nerddinner.com/Home/About/, что я и ожидаю.

Однако, если бы я посетил http://www.nerddinner.com/Home/About/WhyDoesThisLinkChange, эта страница не только действительна, но и вкладка «О программе» также указывает на http://www.nerddinner.com/Home/About/WhyDoesThisLinkChange. Почему ASP.NET MVC делает это и как мне предотвратить это?

1 Ответ

1 голос
/ 12 ноября 2010

Можете ли вы показать свои настройки маршрутизации? Что-то не так с этим я бы предложил. URL второго примера не должен соответствовать тому же действию.

Возможно, у вас есть параметр в маршрутизации - и MVC правильно сохраняет этот параметр.

В принципе, если у вас есть

/ продукт / вид / 17

Контроллер = продукт

Действие = просмотр

{productId} = 17

Таким образом, в этом случае имеет смысл сохранить идентификатор продукта в запросах на одно и то же действие.

Но в вашем случае вы не хотите, чтобы оба этих URL отображались в одно и то же место. Тем не менее, как только вы окажетесь там - со вторым URL - для MVC имеет смысл использовать тот же URL, чтобы вернуться к тому же действию.

ОБНОВЛЕНИЕ: Если вы хотите явно остановить параметр, принимаемый для этого URL, вам нужно сделать параметр маршрутизации, принимающий параметр, более конкретным, чтобы он исключал этот URL, или поместить параметр маршрутизации над ним без параметра, а только принимать. Главная / Об URL.

...