2014-01-08 23 views
5

状況の簡単な要約:私のコントローラよりもAjax.ActionLink POSTは、ASP.NET MVCでは動作しません5

@{ 
ViewBag.Title = "Index"; 

AjaxOptions options = new AjaxOptions(); 
options.HttpMethod = "POST"; 
} 

... 

@Ajax.ActionLink("Linkname", "CreateChallenge", new { challengedId = Model.UserId },options); 

:私の見解では

私はカミソリコードのこの部分を持っています:

[Authorize] 
[HttpPost] 
    public string CreateChallenge(string challengedId) 
    { 
     ChallengeRepository.CreateChallenge(challengedId); 
     return "Sendend!"; 
    } 

私は、リンクをクリックしてください「リソースが見つかりません」というエラーが表示されますが、私は削除したときに[HttpPost]すべてが正常に動作します属性。しかし、私はPOSTメソッドが必要です。私は周りを見回し、いくつかの同様の問題を発見したが、解決策のどれも私のために働いた。

答えて

7

UPDATE スポークがあまりにも早く、あなたがこれをインストールし、それが動作するはずビューでそれを参照する場合は、jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/パッケージ

が必要であることを思い出し、それは私は私のOOTBテストでした:)

Ajax.ActionLinkを使用してPOSTリクエストを発行することはできません.AjaxOptionsでPOSTを設定してもGETを実行します。トラフィックを監視するためにfiddlrを使用すると、これを見ることができます。

ChromeのPostman拡張機能を使用してテストすることもできます。これを実行すると、アクションメソッドは実際に動作するはずです。しかし、あなたは実際にGETを行うので、404を取得します

私はjQueryを使って投稿を行います。詳細はこちらをご覧ください http://api.jquery.com/jquery.ajax/

関連する問題