2012-01-12 24 views
7

जब भी संभव हो तो उचित HTTP विधि का उपयोग करना चाहूंगा। इस मामले में, जब किसी बटन को हटाने के लिए बटन क्लिक किया जाता है, तो मैं [HttpDelete] विशेषता के साथ नियंत्रक कार्रवाई को आग लगाना चाहता हूं। हालांकि, मैं इस विधि के साथ एक फॉर्म बनाने के लिए प्रतीत नहीं कर सकता - रेजर सिंटैक्स का उपयोग कर। FormMethod enum Delete के लिए एक विकल्प नहीं है और निम्नलिखित कर यह हावी नहीं होता:Html.BeginForm() में DELETE फ़ॉर्म विधि का उपयोग करें?

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

समाधान के लिए सर्च कर रहे हैं कोई नहीं, कोई भी इस कर रही है पैदावार? मुझे पता है कि मैं सिर्फ POST का उपयोग कर सकता हूं लेकिन क्या यह HTTP हटाने विधि के साथ शुरू करने का मुद्दा नहीं है?

+0

Joeri Jans सही है। एमवीसी में, आपको यह सोचने के लिए कार्रवाई विधि को चालित करने की आवश्यकता है कि पोस्ट एक DELETE (या PUT) है। – danludwig

उत्तर

20

आप अपने रूप में इस की जरूरत है:

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

अतिरिक्त जानकारी: एचटीएमएल स्पेक फॉर्म के लिए विधि के रूप में "पाने" या "पोस्ट" की तुलना में किसी और चीज की अनुमति नहीं देता है, इसलिए एमवीसी को छुपे हुए इनपुट की जांच करनी है जो HttpMethodOverride बनाता है और फिर मान लें कि यह क्रिया भेजी गई थी। –

+0

धन्यवाद जोजा। ईसाई, अगर यह HTML spec में नहीं है तो मुझे लगता है कि मुझे बस पोस्ट के साथ रहना चाहिए ...? –

+0

एचटीएमएल 5 spec DELETE का समर्थन करता है और – Betty

संबंधित मुद्दे