[AcceptVerbs (HttpVerbs.Post)] और [HttpPost] में क्या अंतर है?


81

मैं [AcceptVerbs (HttpVerbs.Post)] / [AcceptVerbs (HttpVerbs.Get)] के साथ एक क्रिया को सजा सकता हूं

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(string title)
{
    // Do Something...
}

या [HttpPost] / [HttpGet] विशेषताओं के साथ

[HttpPost]
public ActionResult Create(string title)
{
    // Do Something...
}

क्या वे अलग हैं?


1
HttpPost MVC 2.0+ है, और जैसा कि मैथ्यू ने कहा, इसका सिर्फ छोटा हाथ है
dbones

एस्प नेट पीवीसी में [HttpPost] जैसे भाव कैसे कहलाते हैं? सज्जाकार?
औरिलाब


मैंने पाया है कि [AcceptVerbs("GET")]मदद डॉक्स में उत्पन्न होने वाली उस कार्रवाई के लिए एक प्रविष्टि को रोक सकता है।
CompanyDroneFromSector7G

जवाबों:


55

कुछ भी तो नहीं। एक दूसरे के लिए सिर्फ आशुलिपि है।


1
एक बस एक समापन बिंदु में प्राप्त करने और पोस्ट करने के लिए स्वीकार नहीं करता है। उस समापन बिंदु का क्या मतलब है?
सेंसेई

यह गलत नहीं है क्योंकि यह सुझाया गया उत्तर नहीं होना चाहिए।
जॉन लॉर्ड

201

[HttpPost]के लिए आशुलिपि है [AcceptVerbs(HttpVerbs.Post)]। एकमात्र अंतर यह है कि आप [HttpGet, HttpPost]एक ही कार्रवाई पर एक साथ (और समान) का उपयोग नहीं कर सकते हैं । यदि आप GET और POST दोनों का जवाब देने के लिए कोई कार्रवाई चाहते हैं, तो आपको इसका उपयोग करना होगा [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]


20
यह स्वीकार किए जाते हैं की तुलना में अधिक सही और जानकारीपूर्ण उत्तर है।
24x7Programmer

1
मैं [HttpPost] और [HttpGet] का उपयोग करना पसंद करता हूं। जब मुझे एक कार्रवाई के लिए उन दोनों की आवश्यकता होती है: बस किसी का उपयोग न करें (क्योंकि आपको पीयूटी, DELETE या अन्य की आवश्यकता नहीं है)
सर्गेई जी।

1
मैं एकरूपता पसंद करता हूं, जिसका अर्थ है दुर्भाग्य से केवल "पुराना" एक्सेप्टेर्ब्स वह तरीका है जो हमेशा काम करेगा, शर्म की बात है। Microsoft को इस "नई" विधि को रोकने के लिए एकाधिक पाइपलाइन के उपयोग और प्रक्रिया की अनुमति देने के लिए विशेषता को बदलना चाहिए, जिससे भ्रम और परेशानी हो सकती है, जैसे stackoverflow.com/questions/16658020/…
टोनी वाल

2
@CodeChief एक त्वरित विचार प्रयोग स्पष्ट करेगा कि यह ऐसा क्यों है ... AcceptVerbsविशेषता एक एकल झंडे पैरामीटर है। आप उनके द्वारा कई झंडे सेट करें या उन्हें इग्नोर करें। यदि आप शॉर्टहैंड का उपयोग करते हैं तो साथ में झंडे के लिए कोई तंत्र उपलब्ध नहीं है, इसके [HttpPost]लिए केवल [AcceptVerbs(HttpVerbs.Post)]शॉर्टहैंड है; यही कारण है कि AcceptVerbs अभी भी मौजूद है (पीछे की संगतता के कारणों से परे)।
रॉबर्ट हार्वे

@ रोबर्टहवे - यह स्पष्ट है कि वे क्या हैं, चर्चा है कि दो अलग-अलग HttpGet और HttpPost विशेषताओं को एक साथ काम करने की अनुमति क्यों नहीं दी जाती है। मुझे लगता है कि प्रशिक्षण और विकास टीमों का निर्माण करना है। आप अन्य डेवलपर्स को क्या करने के लिए कहते हैं ... "ओह इस विशेषता का उपयोग करें ... लेकिन इस मामले में अन्य का उपयोग करें ...."। इसलिए निरंतरता के लिए केवल वही जिसे आप लोगों को उपयोग करने के लिए कह सकते हैं, वह है, AcceptVerbs। HttpGet / HttpPost की यह सीमा सहज, यकीनन बग नहीं है। कुल मिलाकर एक बड़ा मुद्दा नहीं है, सिर्फ एक "गोचा"।
टोनी वॉल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.