2011-09-16 23 views
1

次のコードを実行した場合、エラーメッセージ "" PublicActionメソッド 'PostAction'がコントローラで見つかりませんでした... "。 FiddlerがPOSTの代わりにGET要求を使用していることを示します。私は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

関連する問題