【发布时间】: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