2012-01-12 23 views
7

Mümkün olduğunda uygun HTTP yöntemini kullanmak istiyorum. Bu durumda, bir düğmeyi silmek için bir düğmeye tıklandığında, denetleyici eylemini [HttpDelete] özniteliğiyle çalıştırmak istiyorum. Bununla birlikte, Razor sözdizimini kullanarak bu yöntemle bir form oluşturamıyorum. FormMethod enum Delete için bir seçenek yok ve aşağıdakileri yaparak bunu geçersiz kılmaz:Html.BeginForm() içinde DELETE form yöntemini kullanın?

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

çözümleri aranıyor hiçbiri, hiç kimse bu yapıyor çıkar;? Sadece POST kullanabileceğimi biliyorum, ancak bu HTTP silme yönteminin başlangıç ​​noktası değil mi?

+0

Joeri Jans doğrudur. MVC'de, eylem yöntemini POST'un bir DELETE (veya PUT) olduğunu düşünerek kandırmanız gerekir. – danludwig

cevap

20

Sen formda bu gerekir:

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

Ekstra bilgi: HTML özellikleri, formlar için yöntem olarak "get" veya "post" dışında herhangi bir şeye izin vermez, böylece MVC, HttpMethodOverride'nin oluşturduğu gizli girdiyi denetlemeli ve bu fiilin gönderildiği varsayılmalıdır. –

+0

Teşekkürler JoJa. Christian, eğer HTML özelliğinde değilse o zaman sadece POST ile uğraşmam gerektiğini farz ediyorum. –

+0

HTML5 spec, DELETE ve PUT – Betty