@Url.action() 的 ASP.NET MVC 帖子

标签 asp.net asp.net-mvc html-helper

我有以下由 asp.net 自动生成的 Controller

    //
    // POST: /Account/LogOff
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult LogOff()
    {
        AuthenticationManager.SignOut();
        return RedirectToAction("Index", "Home");
    }

现在我有一个注销按钮。目前它看起来像这样:
   <div class="userdrop">
                <ul>
                    <li><a href="@Url.Action("Manage", "Account")">Profile</a></li>                       
                    <li><a href="@Url.Action("LogOff", "Account")">Logout</a></li>
                </ul>
            </div><!--userdrop-->

但它不起作用,我猜这是因为它是一个 Post 操作方法。

我将如何“注销”?

[编辑]

为什么它会自动生成为 Http Post?这样更安全吗?当它注销时它不发送cookie吗?

最佳答案

How would I go about "logging off" ?



通过使用表单而不是 anchor :
<li>
    @using (Html.BeginForm("LogOff", "Account"))
    {
        @Html.AntiForgeryToken()
        <button type="submit">Logout</button>
    }
</li>

如果需要,您可以调用 CSS 向导将这个按钮的样式设置为 anchor 。但是在这种情况下语义正确的元素是一个 html 表单,它允许您发送一个 POST 动词。

关于@Url.action() 的 ASP.NET MVC 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406497/

相关文章:

javascript - 更改 Select Elm 中所选元素的颜色 - Firefox 渲染问题

ASP.Net:动态创建的下拉列表和数据源

c# - MVC 4 : How to maintain sessions and cookies to be still valid after IIS restart?

c# - 我怎样才能创建一个像 Html.BeginForm 这样的 Html Helper

asp.net - 仅在 asp.net 中禁用特定控件的 CSS

jquery - Kendo Treeview 在子节点中获得无限循环

asp.net-mvc - 如何自动设置输入字段的 MAXLENGTH?

asp.net-mvc - 如何使用Moq对HtmlHelper进行单元测试?

asp.net-mvc-3 - 有什么方法可以不必追溯生成这些数据属性?

asp.net - ASP.NET中Cache.Insert的默认持续时间