簡體   English   中英

ASP.NET MVC 4默認_LoginPartial模板注銷無效

[英]ASP.NET MVC 4 Default _LoginPartial template Logout not working

我一直在擺弄默認MVC 4模板的_Layout和_PartialLayouts,突然之間'_PartialLogin'文檔中的'Logout'功能已經停止工作。 為了給你提供更多信息,從_NavBar.cshtml調用_LoginPartial.cshtml,然后從_Layout.cshtml調用_NavBar.cshtml

_LoginPartial.cshtml的代碼是:

@if (Request.IsAuthenticated) {
<text>
    <p>Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
    @using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
        @Html.AntiForgeryToken()
        <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
    }</p>
</text>
} 

_NavBar.cshtml中的代碼是:

<form class ="navbar-form navbar-right" method="post" action="/account/login">
    <div class ="form-group">
        @Html.Partial("_LoginPartial")
    </div>
</form>

_Layout.cshtml中的代碼是:

<body>
    @Html.Partial("_Navbar")
    @RenderSection("featured", required: false)
    @RenderBody()
    <div class="container">

我明白了問題可能是javascript已經無意中被無意識地禁用了。 我可能錯過了一些腳本標簽嗎? 或者它是上一課中我稱之為_PartialLogin的東西?

我沒有回答你的問題( 你已經解決了問題 ),但我認為這大大改善了代碼:

改變這一行:

<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>

這一個:

<button class="btn btn-link">Log off</button>

此更改也不需要表單上的ID。

我也有這個問題 - 因為我們也在使用bootstrap。

這在Chrome中運行良好:

<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>

但是為了讓它在Explorer上運行,解決方案是將javascript移動到onclick屬性:

<a href="#" onclick="javascript:document.getElementById('logoutForm').submit()">Log off</a>

https://stackoverflow.com/a/17078223

解決了這個問題......

您不能將javascript文本放在<form>標記中。 然后,它將無法作為引導程序混亂。

無論你多少次在同一個地方調用partialLayouts - 只要注意你嵌入了javascript的標簽

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM