无法在控制器中调用LogOff方法

时间:2016-05-04 07:44:56

标签: asp.net-mvc asp.net-core-mvc

我已经使用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>
}

我在控制器的方法的第一行应用了一个断点,但它从不中断,浏览器只是空白。

我做错了什么?

1 个答案:

答案 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>
                                    }