2012-01-12 2 views
7

Je voudrais utiliser la méthode HTTP appropriée lorsque cela est possible. Dans ce cas, lorsqu'un bouton est cliqué pour supprimer quelque chose, je veux déclencher l'action du contrôleur avec l'attribut [HttpDelete]. Cependant, je n'arrive pas à créer un formulaire avec cette méthode - en utilisant la syntaxe Razor. Le FormMethod ENUM ne dispose pas d'option pour Delete et de faire ce qui suit ne remplace pas:Utilisez la méthode de formulaire DELETE dans Html.BeginForm()?

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

Recherche de solutions rendements ne, personne est en train de faire cela? Je sais que je peux juste utiliser POST mais n'est-ce pas le point de la méthode de suppression HTTP pour commencer?

+0

Joeri Jans est correcte. Dans MVC, vous devez tromper la méthode d'action en pensant que le POST est un DELETE (ou PUT). – danludwig

Répondre

20

avez-vous besoin dans votre formulaire:

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

Informations supplémentaires: La spécification HTML ne permet rien d'autre que "get" ou "post" comme méthode pour les formulaires, donc MVC doit vérifier l'entrée cachée créée par HttpMethodOverride et supposer que ce verbe a été envoyé. –

+0

Merci JoJa. Christian, si ce n'est pas dans les spécifications HTML, alors je suppose que je devrais m'en tenir à POST ...? –

+0

La spécification HTML5 prend en charge SUPPRIMER et METTRE – Betty

Questions connexes