Qui sono le mie vie in Global.asaxCome percorso GET e DELETE richieste per lo stesso URL a diversi metodi di controller
routes.MapRoute("PizzaGet", "pizza/{pizzaKey}", new { controller = "Pizza", action = "GetPizzaById" });
routes.MapRoute("DeletePizza", "pizza/{pizzaKey}", new { controller = "Pizza", action = "DeletePizza" });
Qui ci sono i miei metodi di controller
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetPizzaById(long pizzaKey)
[AcceptVerbs(HttpVerbs.Delete)]
public ActionResult DeletePizza(long pizzaKey)
Quando faccio un GET restituisce l'oggetto, ma quando faccio un DELETE ottengo un 404. Sembra che questo dovrebbe funzionare, ma non lo fa.
Se cambio i due percorsi in giro, posso eseguire il DELETE, ma ottenere un 404 su GET.
Ora questo è veramente bello. Grazie
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" }) });
Grazie per il nuovo anwser .. Ho anche trovato questo http://arcware.net/adding-httpmethodconstraint-to-asp-net-mvc-routes/ –