【问题标题】:How to make Ajax.ActionLink send Http Post request?如何让 Ajax.ActionLink 发送 Http Post 请求?
【发布时间】:2011-11-18 08:10:33
【问题描述】:

如果我运行以下代码,我会收到错误消息“在控制器上找不到公共操作方法 'PostAction'...”。 Fiddler 显示使用 GET 请求而不是 POST。我试图用 Ajax.BeginForm 替换 Html.BeginForm,它没有帮助。那么我做错了什么?谢谢。

@using (Html.BeginForm())
{ 
    @Ajax.ActionLink("ClickMe", "PostAction", new AjaxOptions { HttpMethod = "POST" }) 
}

[HttpPost]
 public virtual ActionResult PostAction() { ... }

更新,附加信息:这就是 MVC 生成 Html 锚点的方式:

<a onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, httpMethod: 'POST' });" href="/.../PostAction/">ClickMe</a>

【问题讨论】:

  • 对,但它不仅仅是超链接,MVC 处理它的点击事件并尝试在 POST 模式下运行它,至少它是这样工作的。

标签: asp.net-mvc asp.net-mvc-3 post razor


【解决方案1】:

哦,我只是忘了添加对 MicrosoftAjax.js 和 MicrosoftMvcAjax.js 的引用。当我添加它们时,一切正常。对不起,愚蠢的帖子

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
相关资源
最近更新 更多