2010-10-02 17 views
64

मैं एक कार्य को सजाने कर सकते हैं या तो साथ [AcceptVerbs (HttpVerbs.Post)]/[AcceptVerbs (HttpVerbs.Get)][AcceptVerbs (HttpVerbs.Post)] और [HttpPost] के बीच क्या अंतर है?

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

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

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

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

+1

एचटीपीपोस्ट एमवीसी 2.0+ है, और मैथ्यू ने कहा, यह सिर्फ छोटा हाथ – dbones

+0

एएसपी नेट एमवीसी में [HttpPost] जैसे भाव कैसे हैं? सज्जाकार? – andi

+0

@andi उन्हें "गुण" कहा जाता है http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx –

उत्तर

49

कुछ भी नहीं। एक दूसरे के लिए सिर्फ शॉर्टेंड है।

+4

क्या आप निश्चित हैं? यदि ऐसा है, तो कृपया नीचे दिए गए उत्तर को देखें! .. –

+0

नहीं, वे एक दूसरे के इनवर्से हैं –

157

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

+14

यह स्वीकार किए गए एक से अधिक सही और सूचनात्मक उत्तर है। – 24x7Programmer

+0

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

+1

मैं स्थिरता पसंद करता हूं, जिसका अर्थ है दुर्भाग्य से केवल "पुराना" AcceptVerbs वह तरीका है जो हमेशा काम करेंगे, शर्म की बात है। माइक्रोसॉफ्ट को इस उपयोग को "नई" विधि को भ्रम और परेशानी के कारण रोकने के लिए, एकाधिक पाइपलाइन में तदनुसार एकाधिक उपयोग और प्रक्रिया को अनुमति देने के लिए विशेषता को बदलना चाहिए। http://stackoverflow.com/questions/16658020/public-action-method-was-not-found-on-controller –