다음은 내 경로입니다. Global.asax동일한 URL에 대한 GET 및 DELETE 요청을 다른 컨트롤러 메서드로 라우팅하는 방법
routes.MapRoute("PizzaGet", "pizza/{pizzaKey}", new { controller = "Pizza", action = "GetPizzaById" });
routes.MapRoute("DeletePizza", "pizza/{pizzaKey}", new { controller = "Pizza", action = "DeletePizza" });
다음은 내 컨트롤러 메소드입니다.
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetPizzaById(long pizzaKey)
[AcceptVerbs(HttpVerbs.Delete)]
public ActionResult DeletePizza(long pizzaKey)
GET을 수행하면 개체가 반환되지만 삭제하면 404가됩니다. 이게 효과가있는 것처럼 보이지만 그렇지 않습니다.
그러면 두 경로를 전환하면 DELETE를 수행 할 수 있지만 GET에서 404를 얻습니다.
이제 정말 아름답습니다. 감사합니다
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" }) });
새로운 anwser를 주셔서 감사합니다 .. 나는 또한 이것을 발견 http://arcware.net/adding-httpmethodconstraint-to-asp-net-mvc-routes/ –