2015-11-01 64 views
0

我在一個名爲「Application」的區域內查看。從區域內查看根訪問控制器操作不起作用area =「」

這種觀點認爲我有這個鏈接:

@using (Html.BeginForm("LogOff","Account", FormMethod.Post, new { area = "", id = "logoutForm", @class = "navbar-right" })) 
{ 
    @Html.AntiForgeryToken() 

    <ul class="nav navbar-nav navbar-right"> 
     <li> 
      @Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" }) 
     </li> 
     <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li> 
    </ul> 
} 

這ActionLink的指根控制器「的AccountController」有動作「註銷」。

當我提交表單,瀏覽器顯示了這個在地址欄:

http://localhost:61774/Application/Account/LogOff

但是這條路並不存在,因爲它確實看在根控制器,雖然我設置area = ""

爲什麼它不起作用?

回答

1

您使用this overloadHtml.BeginForm(),它將area作爲html屬性添加,而不是路由值。您需要使用this overload添加路線值

@using (Html.BeginForm("LogOff","Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))