2011-09-16 54 views
1

如果我運行以下代碼,我收到錯誤消息「在控制器上找不到公共操作方法'PostAction'...」。使用提琴手顯示GET請求而不是POST。我試圖用Ajax.BeginForm替換Html.BeginForm,但它沒有幫助。那麼我做錯了什麼?謝謝。如何讓Ajax.ActionLink發送Http Post請求?

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

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

UPDATE,附加信息:這就是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> 
+1

超鏈接== GET – SLaks

+1

沒錯,但它不只是超鏈接,MVC處理它的點擊事件並嘗試在POST模式下運行它,至少這是它假設的工作方式。 – YMC

回答

1

哦,我只是忘了添加對MicrosoftAjax.js和MicrosoftMvcAjax.js。當我添加它們時,一切正常。對不起,這個愚蠢的帖子

+0

這些在MVC3和MVC4中已過時。請參閱:http://stackoverflow.com/a/8784998/210780 – ashes999