ASP.NET Области MVC3

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

Недавно я изучал функциональность областей для своего приложения и добился частичного успеха при переносе кода в мою первую область.

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

 <a href="@Url.Action("Index","Home", new )">
     <span>Testing Link </span>
</a>
  

Как мне сделать этот код, который в настоящее время ссылается на /myarea/home/index вместо ссылки на /home/index (не в области). Если это противоречит лучшим практикам, мне было бы интересно прочитать об этом, я все еще учусь ASP.NET версия областей

Ответ №1:

ссылка на область:

 @Url.Action("Index","Home", new { area = "YourAreaName" } )
  

ссылка на место из любой области:

 @Url.Action("Index","Home", new { area = "" } )
  

Полезный список:

 @Html.ActionLink("LinkText", "ActionName", new { area = "AreaName" })
@Html.ActionLink("LinkText", "ActionName", new { area = "" })

@Html.ActionLink("LinkText", "ActionName", "ControllerName", new { area = "AreaName" }, new { /* html attributes */ })
@Html.ActionLink("LinkText", "ActionName", "ControllerName", new { area = "" }, new { /* html attributes */ })

<a href="@Url.Action("ActionName", new { area = "AreaName" })">Link Text</a>
<a href="@Url.Action("ActionName", new { area = "" })">Link Text</a>

<a href="@Url.Action("ActionName", "ControllerName", new { area = "AreaName" })">Link Text</a>
<a href="@Url.Action("ActionName", "ControllerName", new { area = "" })">Link Text</a>
  

Ответ №2:

RouteValues Коллекция может принимать параметр области. Просто сделайте его пустым.

new { area = "" }

Комментарии:

1. Простой быстрый ответ, грустный, я сам об этом не подумал, оценил.