【问题标题】:Call an Action from an MVC View从 MVC 视图调用操作
【发布时间】:2011-05-10 19:50:28
【问题描述】:

我试图弄清楚如何从 MVC 视图调用操作,而不是调用视图 URL。

我有一个用于在帐户控制器中注销的操作方法:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SignOff()
{
    authenticationService.SignOut();
    return View("SignOff");
}

我想从一个 cshtml 页面调用它,像这样:

<li>@Html.Action("SignOff","Account")</li>

该列表是下拉菜单的一部分。

ActionLink 不起作用,因为我没有帐户/注销页面。上面的代码返回以下内容:“执行处理程序'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'的子请求时出错。” ActionLink 只是告诉我资源不存在。

有没有办法做到这一点?我只希望用户能够从菜单中选择“注销”项,然后让应用程序调用 SignOff 方法。我需要使用 Ajax 吗? Javascript?我还在试验。谢谢你!

编辑:好的,是 http.post 让我无法直接调用它。我去掉了acceptverbs属性,现在可以直接调用方法了。

【问题讨论】:

    标签: asp.net-mvc-3 c#-4.0


    【解决方案1】:

    您可以只重定向到登录页面或任何其他公共页面(主页)。

    return RedirectToAction("Login");
    

    【讨论】:

    • 好的,所以只需创建一个要链接的页面并让页面的控制器重定向到该操作。我猜这意味着无法从视图中的 HTML 帮助程序直接链接到 Action。我会试一试,然后再检查。谢谢!
    • 正如我上面所说,httpverbs.post 属性使我无法直接访问此方法。删除它消除了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多