Подтвердить что ты не робот

ASP.NET MVC ActionLink вне зоны действия

Простая задача в MVC, иногда становится сложной задачей.

Ну, у меня есть область под названием Admin. У меня есть страница с именем "Запрещено" внутри общего каталога в этой области.

Цель проста: мне нужно создать Html.ActionLink, который создает ссылку для возврата на главную страницу, которая OUTSIDE в области администратора.

Итак, я пытаюсь, <%= Html.ActionLink("Back","Index",new {controller="Home"})%>, и его сгенерирует:

http://localhost/Admin/Home/Index

Неправильно! Я хочу:

http://localhost/Home/Index

Как создать ссылку из области в структуру контроллеров по умолчанию?

4b9b3361

Ответ 1

Попробуйте следующее:

<%= Html.ActionLink("Back", "Index", "Home", new { area = "" }, null) %> 

При использовании областей вы всегда должны указывать область, которую вы вызываете в своих ActionLinks, добавив значение маршрута, как указано выше. Если ссылка находится за пределами области (как в вашем случае), просто используйте пустой параметр для этой области.


Там хорошее расширение, которое я нахожу существенным в любом проекте ASP.NET MVC (T4MVC). Это делает ваши ActionLinks намного чище и защищает их от ошибок.

Таким образом, приведенный выше код будет выглядеть примерно так:

<%= Html.ActionLink("Back", MVC.Home.Index()) %>

и при использовании области:

<%= Html.ActionLink("Some Link", MVC.Admin.SomeController.SomeAction()) %>

Это часть проекта MvcContrib на codeplex здесь

Вы должны использовать его.