Voici mes itinéraires dans Global.asaxComment itinéraire GET et les demandes de suppression pour la même URL pour différentes méthodes de contrôleur
routes.MapRoute("PizzaGet", "pizza/{pizzaKey}", new { controller = "Pizza", action = "GetPizzaById" });
routes.MapRoute("DeletePizza", "pizza/{pizzaKey}", new { controller = "Pizza", action = "DeletePizza" });
Voici les mes méthodes de contrôleur
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetPizzaById(long pizzaKey)
[AcceptVerbs(HttpVerbs.Delete)]
public ActionResult DeletePizza(long pizzaKey)
Quand je fais une GET il renvoie l'objet, mais quand je fais un DELETE je reçois un 404. Il semble que cela devrait fonctionner, mais ce n'est pas le cas.
Si je change les deux routes, alors je peux faire le DELETE, mais obtenir un 404 sur le GET.
Maintenant, c'est vraiment magnifique. Merci
routes.MapRoute("Pizza-GET","pizza/{pizzaKey}",
new { controller = "Pizza", action = "GetPizza"},
new { httpMethod = new HttpMethodConstraint(new string[]{"GET"})});
routes.MapRoute("Pizza-UPDATE", "pizza/{pizzaKey}",
new { controller = "Pizza", action = "UpdatePizza" },
new { httpMethod = new HttpMethodConstraint(new string[] { "PUT" }) });
routes.MapRoute("Pizza-DELETE", "pizza/{pizzaKey}",
new { controller = "Pizza", action = "DeletePizza" },
new { httpMethod = new HttpMethodConstraint(new string[] { "DELETE" }) });
routes.MapRoute("Pizza-ADD", "pizza/",
new { controller = "Pizza", action = "AddPizza" },
new { httpMethod = new HttpMethodConstraint(new string[] { "POST" }) });
Merci pour la nouvelle réponse. J'ai aussi trouvé ce http://arcware.net/adding-httpmethodconstraint-to-asp-net-mvc-routes/ –