我有一个名为“UserProfile”的区域。 从索引视图我想从根控制器(非区域)调用一个Action。 我使用了Html.ActionLink(“索引”,“主页”)
当我运行应用程序时,生成的URL是“/ UserProfile / Home / Index”而不是“/ Home / Index”。
根
查看Index.aspx
控制器:App / Controller / HomeController
路径:App / Views / Home
区域
查看:Index.aspx
路径:App / Areas / UserProfile / Views / User
ActionLink:Html.ActionLink(“索引”,“主页”)
答案 0 :(得分:14)
是的,如果您正在使用某些区域,那么总是在Area
链接中指定ActionLink
,如果您不希望链接发送,则为空到特定区域,如下:
Html.ActionLink("Home", "Index", "Home", new { Area = "" }, new { })
这是必需的,否则,如果您未指定Area
,则将使用用户当前所在的那个。
例如,如果您使用ActionLink
而未在Area
页面中指定_Layout.cshtml
,则只要您保留在应用程序的根目录中,它就会起作用。从您进入某个区域的那一刻起,该链接将生成为\currentArea\the_rest_of_the_link
,因此将不再有效。
答案 1 :(得分:0)
我更喜欢RouteLink方法,因为它会完全呈现它。
@Html.RouteLink(
"Home Page",
"Default",
new
{
Action = "Index",
Controller = "Home"
}
)
试一试。