2012-01-12 17 views
7

可能であれば、適切なHTTPメソッドを使用したいと思います。この場合、ボタンをクリックして何かを削除すると、コントローラーアクションが属性[HttpDelete]で開始されます。しかし、この方法では、Razor構文を使用してフォームを作成することはできません。 FormMethod列挙型はDeleteためのオプションを持っていないし、次の操作を行うと、それを上書きしません:ソリューションの検索Html.BeginForm()でDELETEフォームメソッドを使用しますか?

@using (Html.BeginForm("Order", "Users", FormMethod.Post, new { method = "DELETE" })) 

は、誰もがこれをどれもやっていない利回り?私はPOSTを使うことができますが、これはHTTPの削除方法のポイントではありませんか?

+0

Joeriヤンスは正しいです。 MVCでは、アクションメソッドをトリックして、POSTがDELETE(またはPUT)であると考える必要があります。 – danludwig

答えて

20

あなたの形でこれを必要とする:

@using (Html.BeginForm("Order", "Users"){ 
    @Html.HttpMethodOverride(HttpVerbs.Delete) 
} 
+2

追加情報: HTML仕様では、フォームのメソッドとして "get"または "post"以外を許可しないため、MVCはHttpMethodOverrideが作成する非表示入力をチェックし、この動詞が送信されたと仮定しなければなりません。 –

+0

ありがとうございました。クリスチャン、それがHTML仕様でないなら、私はPOSTに固執すべきだと思います...? –

+0

HTML5仕様はDELETEとPUTをサポートしています – Betty

関連する問題