![](/img/trans.png)
[英]A minor change in ASP.NET default _LoginPartial view not working
[英]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>
解決了這個問題......
您不能將javascript文本放在<form>
標記中。 然后,它將無法作為引導程序混亂。
無論你多少次在同一個地方調用partialLayouts - 只要注意你嵌入了javascript的標簽
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.