Asp.net mvc 3 ActionLink可以';t访问根文件夹-MVC 3

Asp.net mvc 3 ActionLink可以';t访问根文件夹-MVC 3,asp.net-mvc-3,routes,actionlink,html.actionlink,Asp.net Mvc 3,Routes,Actionlink,Html.actionlink,我有一个.NETMVC3Web应用程序,它具有以下结构 根 观点 帐目 LoginPage.aspx 控制器 会计控制员 区域 课程 Index.aspx 假设我现在在课程区的Index.aspx页面,我会有一个按钮将我转发到LoginPage.aspx 在ASP.NETMVC中,我会称之为它将引导我进入正确的页面。如果我把它写在浏览器上,它就会工作 但是我想使用HTML助手ActionLink,所以我尝试了: <%: Html.ActionLink("Log

我有一个.NETMVC3Web应用程序,它具有以下结构

    • 观点
      • 帐目
        • LoginPage.aspx
    • 控制器
      • 会计控制员
    • 区域
      • 课程
        • Index.aspx
假设我现在在课程区的Index.aspx页面,我会有一个按钮将我转发到LoginPage.aspx

在ASP.NETMVC中,我会称之为它将引导我进入正确的页面。如果我把它写在浏览器上,它就会工作

但是我想使用HTML助手ActionLink,所以我尝试了:

<%: Html.ActionLink("Log on", "Login",  "Account", routeValues: null, htmlAttributes: new {  id = "logonLink", data_dialog_title = "Logon" })%>

它将获得相对路径:

我也试过:

<%: Html.ActionLink("Log on", "Login",  "../Account", routeValues: null, htmlAttributes: new {  id = "loginLink", data_dialog_title = "Login" })%>

我收到错误消息:无法使用前导。。退出顶部目录上方。

我还尝试了相对路径:

<%: Html.ActionLink("Log on", "Login",  "~/Account", routeValues: null, htmlAttributes: new {  id = "loginLink", data_dialog_title = "Login" })%>

这让我想到:

我非常感激如何找到这个问题的解决方案。

试试这个:

<%: Html.ActionLink("Log on", "Login",  "Account", new { area = "" } , new {  id = "logonLink", data_dialog_title = "Logon" })%>

键是
区域=”
位。当对区域使用
Url.Action
Html.ActionLink
时,如果未指定
区域
路由值,MVC将仅在当前区域中查找匹配项

使用局部视图/模板时,这一点更为重要,因为它们可以在不同区域的视图中渲染

因此,如果使用区域,请养成始终指定
area
路由值的习惯,除非使用
Url.RouteUrl
Html.RouteLink