2016-03-23 2 views
1

Моя проблема так же проста, как и название.Маршрутизация в MVC не всегда работает правильно

Я хочу связать действие с контроллером, но не всегда работает. Я знаю, в чем проблема, но не знаю, как ее решить.

Представьте, что вы находитесь на главной странице, тогда URL-адрес выглядит примерно так: localhost:1234/. Когда я использую следующий URL-адрес в ссылке (<a> -tag), чтобы перейти к действию configure, href в этом теге будет выглядеть так: configure. Но это не работает, потому что он отправит пользователя на localhost:1234/configure. Вместо этого должно быть localhost:1234/device/configure, где device является контроллером.

Я мог бы изменить href в теге link device/configure, но тогда он больше не будет работать, когда пользователь перенаправляется на домашнюю страницу. Поскольку URL домашней страницы затем localhost:1234/device/view (маршрут по умолчанию, сконфигурированный в RouteConfig.cs) и ссылка будет посылать пользователю localhost:1234/device/device/configure

Я уже пытался использовать @Url.Action и @Html.ActionLink, но это не работает или.

Кто-нибудь знает, как убедиться, что он всегда отправит пользователя по правому URL?

Here - это мой RouteConfig, если вам это нужно.

+0

Может быть, вы могли бы показать нам свою RouteConfig? –

+0

@BonMacalindong Done –

ответ

2

Попробуйте это:

@Html.ActionLink("link text", "configure", "device") 
+0

Как я уже сказал в своем сообщении: «Я уже пытался использовать' @ Url.Action' и '@ Html.ActionLink', но это тоже не работает». - M Zeinstra, 2016 –

+0

Не могли бы вы попробовать и осмотреть якорь, чтобы узнать, что такое генератор href. Я только что проверил это и, похоже, работает для меня – AnotherGeek

+0

О, извините, он внезапно работает: D Спасибо :) Не могли бы вы отредактировать свой ответ, чтобы я мог его продвигать, потому что я больше не могу повышать, если вы не отредактируете свой ответ. –