我有一个有趣的问题。谷歌搜索后似乎没有答案。
使用稍微定制的_LoginPartial.cshtml版本,我似乎在点击退出时收到附加错误。如果有人能搞清楚,Haven没有看到这种行为并且会喜欢一些帮助。
_LoginPartial.cshtml
@if (Request.IsAuthenticated)
{
<ul class="nav navbar-nav navbar-right" style="margin-right: 15px;">
<li>
@Html.ActionLink("Hello " + ViewData["FullName"] + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
else
{
<ul class="nav navbar-nav navbar-right" style="margin-right: 15px;">
<li>@Html.ActionLink("Log In", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
答案 0 :(得分:1)
要完成这项工作,您应该更新表单并在其上添加BeginForm。看起来应该是这样的:
@if (Request.IsAuthenticated)
{
using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm" }))
{
<ul class="nav navbar-nav navbar-right" style="margin-right: 15px;">
<li>
@Html.ActionLink("Hello " + ViewData["FullName"] + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
}
else
{
<ul class="nav navbar-nav navbar-right" style="margin-right: 15px;">
<li>@Html.ActionLink("Log In", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
答案 1 :(得分:1)
您只需要注销Logout操作。
您可以在纯HTML中添加空白表单:
<form action="Account/Logout" id="logoutForm"><form>
注销链接不必在表单内。如果你有一些css规则来搞乱你在<form>
标签内的超链接。
翻译成Razor。你可以做到
using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm" })) ...
像建议的其他答案一样。
或者只是在Html中保持简单,或者只是
<form action='@Url.Action("Logout","Account")' id="logoutForm"><form>