मैं एएसपी.नेट एमवीसी का उपयोग कर एक रीस्टफुल एपीआई के प्रोटोटाइप को कार्यान्वित कर रहा हूं और यहां और वहां की अजीब बग के अलावा, मैंने शुरुआत में सेट की गई सभी आवश्यकताओं को प्राप्त किया है, कॉलर्स X-HTTP-Method-Override
कस्टम का उपयोग करने में सक्षम हैं HTTP विधि को ओवरराइड करने के लिए हेडर।क्या एएसपी.नेट एमवीसी में एक्स-एचटीटीपी-विधि-ओवरराइड को कार्यान्वित करना संभव है?
क्या मैं चाहता हूँ कि निम्नलिखित अनुरोध ...
GET /someresource/123 HTTP/1.1
X-HTTP-Method-Override: DELETE
... मेरी नियंत्रक विधि है कि कि कार्रवाई के लिए GET
कार्यक्षमता के बजाय DELETE
कार्यक्षमता लागू करता है (कि यह सोचते हैं के लिए रवाना किया जायेगा कार्रवाई को लागू करने के कई तरीके हैं, और वे अलग-अलग [AcceptVerbs]
विशेषताओं के साथ चिह्नित हैं)। तो, निम्नलिखित दो तरीकों को देखते हुए, मैं ऊपर अनुरोध चाहते दूसरा एक के लिए भेजा जा करने के लिए होगा:
[ActionName("someresource")]
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetSomeResource(int id) { /* ... */ }
[ActionName("someresource")]
[AcceptVerbs(HttpVerbs.Delete)]
public ActionResult DeleteSomeResource(int id) { /* ... */ }
अगर यह संभव हो सकता है किसी को भी पता है? और ऐसा करने के लिए कितना काम होगा ...?
मुझे AcceptVerbsAttribute से कोड को निकलना पड़ा और दुर्भाग्यवश इसे सील कर दिया गया है, लेकिन मेरा दृष्टिकोण पूरी तरह से काम करता है और अच्छा और सरल है, ऐसा लगता है कि आपको 300 अंक मिलते हैं! –
हाय लेवी, हालांकि मेरा एएसपीनेट आईआईएस या एमवीसी डिलीट और पुट अनुरोध से इंकार कर रहा है, क्या इस काम को पाने के लिए वैसे भी है? मैंने अनुमति देने की कोशिश की: PUT, IIS में हटाएं हेडर को अनुमति दें लेकिन यह काम नहीं करेगा ... – DucDigital
डक, मुझे पता है कि यह लंबे समय तक लंबा रहा है, लेकिन देखें कि वेबडाव इंस्टॉल है या नहीं। यदि यह है, तो इसे अनइंस्टॉल करें। अन्यथा, यह आपके PUT को रोक देगा और अनुरोधों को हटा देगा। –