【发布时间】:2011-06-18 23:03:24
【问题描述】:
我有一个没有区域的现有应用程序。但是,我正在添加一个全新的部分,因此我创建了一个区域。所以我有一个区域和默认区域。
所以,例如:
默认路由 = /Invoice/Create
区域路线 = /TAE/Port/Create
这两个链接都有效。但是,当我导航到 TAE 区域部分时,所有链接都会更改为在该 TAE 区域内。例如 /TAE/Invoice/Create
我可以强制他们没有区域添加新的 { area = "" } 到操作链接,但这涉及修改应用程序中的每个链接。
是否可以让未指定区域的操作链接始终转到默认区域,而不管当前页面在哪个区域?
global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { area="", controller = "Home", action = "Index", id = "" }, // Parameter defaults
new string[] { "BankingDB.Controllers" } //namespaces
);
}
TAEAreaRegistration.cs
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"TAE_default",
"TAE/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
链接到 TAE 区域:
<%= Html.ActionLink("Create", "Create", "Port" , new { area = "TAE"}, new {}) %>
普通区链接:
<%= Html.ActionLink("Create", "Create", "Invoice") %>
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas