2012-01-12 15 views
7

Mi piacerebbe utilizzare il metodo HTTP appropriato quando possibile. In questo caso, quando si fa clic su un pulsante per eliminare qualcosa, desidero attivare l'azione del controller con l'attributo [HttpDelete]. Tuttavia, non riesco a creare un modulo con questo metodo, utilizzando la sintassi Razor. Il FormMethod enum non ha un'opzione per Delete e facendo quanto segue non prevale è:Utilizzare il metodo DELETE in Html.BeginForm()?

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

ricerca di soluzioni rese nessuno, c'è nessuno fare questo? So che posso solo usare POST ma non è questo il punto del metodo di eliminazione HTTP per cominciare?

+0

Joeri Jans è corretta. In MVC, devi ingannare il metodo di azione per pensare che il POST sia un DELETE (o PUT). – danludwig

risposta

20

avete bisogno di questo nel modulo:

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

Ulteriori informazioni: La specifica HTML non consente nient'altro che "get" o "post" come metodo per i form, quindi MVC deve verificare l'input nascosto creato da HttpMethodOverride e quindi assumere che questo verbo sia stato inviato. –

+0

Grazie JoJa. Cristiano, se non è nelle specifiche HTML, suppongo che dovrei limitarmi a POST ...? –

+0

La specifica HTML5 supporta DELETE e PUT – Betty

Problemi correlati