我有一个区域Area1
,其中包含控制器Home
和Index
方法。
我还创建了另一个区域Area2
,其中包含控制器Home
和Index
方法。
在Area1
我有一个应该在Index
中打开Area2
页面的操作链接。
@Html.ActionLink("Link to another area index", "Index", "Home", new { area = "Area2" }, null)
但是当我点击此链接时,首先转到Area1/Home/Index
!
为什么会这样呢?这必须是这样还是可以直接转到Area2/Home/Index
?
这让我有点问题,因为在Area1 / Home / Index中我需要一些参数,当发生这种情况时,这个值为null或者错误并且让我有问题。我一定做错了。
更新
Area1路由
public override void RegisterArea(AreaRegistrationContext context)
{
context.Routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
context.MapRoute(
"Area1_home",
"{country}/{city}",
new { controller = "Home", action = "Index", country = UrlParameter.Optional, city = UrlParameter.Optional }
);
context.MapRoute(
"Area1_default",
"Area1/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Area2路由:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Area2_default",
"Area2/{controller}/{action}/{id}",
new { controller="Home", action = "Index", id = UrlParameter.Optional }
);
}
答案 0 :(得分:1)
尝试:
Html.ActionLink("Link to another area index", "Index", "Home", new { Area = "Area2" }, new{});