Mam projekt ASP.NET MVC i mam jedną akcję, która akceptuje żądania GET, POST i DELETE. Każdy typ żądania jest filtrowany za pomocą atrybutów na moich metodach kontrolerów Action
.Czy można wyzwolić żądanie HTTP DELETE z formularza HTML?
[ActionName(Constants.AdministrationGraphDashboardAction),
AcceptVerbs(HttpVerbs.Post)]
public ActionResult GraphAdd([ModelBinder(typeof (GraphDescriptorBinder))] GraphDescriptor details);
[ActionName(Constants.AdministrationGraphDashboardAction),
AcceptVerbs(HttpVerbs.Delete)]
public ActionResult GraphDelete([ModelBinder(typeof (RdfUriBinder))] RdfUri graphUri)
Moja metoda GraphAdd
działa bardzo dobrze. Próbuję dowiedzieć się, w jaki sposób mogę utworzyć łącze HTML (<form />
lub <a />
), które spowoduje, że przeglądarka wykona żądanie usunięcia HTTP i uruchomi moją metodę GraphDelete.
Jeśli istnieje sposób, aby to zrobić, to może ktoś wstawi przykładowy kod HTML i jeśli jest dostępny, powinienem użyć metody MVC HtmlHelper?
Świetna odpowiedź dzięki Owen! –
Mam nadzieję, że HTML5 zwiększa wsparcie dla czasowników HTTP. – lupefiasco
Dla Asp Mvc istnieje coś takiego jak HttpMethodOverride http://msdn.microsoft.com/en-us/library/ee407388(v=vs.118).aspx. Dzieje się tak, gdy przeglądarka przesyła formularz POST z ukrytym polem, który zastępuje metodę używaną podczas określania, które działanie kontrolera wywoływane jest w .Net Routing Engine. –