我已经使用MVC6启动了一个项目,似乎无法路由到LogOff方法。
帐户控制器如下所示:
//
// POST: /Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> LogOff()
{
await _signInManager.SignOutAsync();
_logger.LogInformation(4, "User logged out.");
return RedirectToAction(nameof(HomeController.Index), "Home");
}
调用导航如下所示:
@if (User.IsSignedIn())
{
<div class="profile-picture">
<div class="stats-label text-color">
<span class="font-extra-bold font-uppercase">@User.GetUserName()</span>
<div class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<small class="text-muted">Title <b class="caret"></b></small>
</a>
<ul class="dropdown-menu animated flipInX m-t-xs">
<li><a href="@Url.Action("LogOff", "Account")">Log off</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</div>
</div>
</div>
}
我在控制器的方法的第一行应用了一个断点,但它从不中断,浏览器只是空白。
我做错了什么?
答案 0 :(得分:1)
而不是
<li><a href="@Url.Action("LogOff", "Account")">Log off</a></li>
尝试像这样替换:
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
}