26

मैं 2 प्रश्न हैं:ActionResult बनाम JSONresult

  1. JSONResult और ActionResult के बीच क्या अंतर है?

  2. जब MVC में JSONResult उपयोग करने के लिए?

+0

आपको उस प्रश्न आदमी को देखना चाहिए :) http://stackoverflow.com/questions/383692/what-is-json-and-why-would-i-use-it – Lemo

उत्तर

9

उपयोग JsonResult जब आप कच्चे JSON डेटा वापस जाने के लिए चाहते हैं (एक वेब पेज पर जावास्क्रिप्ट या एक मोबाइल ग्राहक) एक ग्राहक द्वारा सेवन किया जा करने के लिए।

उपयोग ActionResult अगर आप एक दृश्य के लौटने अनुप्रेषित आदि करना चाहते हैं एक ब्राउज़र द्वारा नियंत्रित किया जा करने के लिए।

31

ActionResult एक अमूर्त वर्ग है कि एक कार्रवाई लौट सकते है।

में सहायक तरीकों Controller (जैसे, Json(), Content(), View(), ...) JsonResult सहित विभिन्न ठोस वर्ग कि ActionResult वारिस, लौटने।

आपको ActionResult लौटने के रूप में अपनी क्रिया विधियों की घोषणा करनी चाहिए, ताकि उन्हें किसी भी ठोस परिणाम वर्ग को वापस करने की स्वतंत्रता हो।

+1

[एमएसडीएन ने ActionResult के विभिन्न ठोस कार्यान्वयन की सूची दी ] (http://msdn.microsoft.com/en-us/library/system.web.mvc.actionresult (v = vs.118) .aspx) –

+0

'आपको एक्शनरसल्ट लौटने के रूप में अपनी क्रिया विधियों की घोषणा करनी चाहिए, ताकि वे किसी भी ठोस परिणाम वर्ग को वापस करने की आजादी है 'मैं असहमत हूं। आपको रिटर्न प्रकारों के बारे में यथासंभव विशिष्ट होना चाहिए, और तर्क के लिए यथासंभव सामान्य होना चाहिए। 'जेसनरसल्ट' ज्यादातर मामलों में लौटने का उचित प्रकार है, क्योंकि अन्य विधियां विधि का उपयोग कर सकती हैं और 'डाटा' का निरीक्षण करना चाहती हैं जो केवल 'जेसनरसेट' में उजागर होती है। – Rob

+0

@Rob: आपको सीधे कार्रवाई विधियों को कॉल नहीं करना चाहिए। यदि आपको किसी अन्य कोड के लिए मूल्य का खुलासा करने की आवश्यकता है, तो इसे एक सहायक विधि पर ले जाएं। – SLaks

0

ActionResult के लिए MSDN documentation के अनुसार:

ActionResult कक्षा एक कार्रवाई विधि का परिणाम समाहित और कार्रवाई विधि की ओर से एक रूपरेखा स्तरीय कार्रवाई करने के लिए प्रयोग किया जाता है।

एक कार्रवाई विधि काम प्रदर्शन और एक कार्रवाई परिणाम वापस लौट कर उपयोगकर्ता इनपुट के प्रतिक्रिया करता है। एक कार्रवाई परिणाम एक आदेश है कि ढांचे कार्रवाई विधि की ओर से प्रदर्शन करेंगे प्रतिनिधित्व करता है। ActionResult वर्ग कार्रवाई के लिए आधार वर्ग परिणाम

और JsonResult के लिए है:

एक वर्ग है कि जवाबी कार्रवाई के लिए JSON- प्रारूपित सामग्री भेजने के लिए प्रयोग किया जाता है का प्रतिनिधित्व करता है।

0

JsonResult

यह एक थोड़ा और अधिक जटिल है, लेकिन अभी भी बहुत नहीं। यह भी अपने ContentType hardcoded गया है, लेकिन क्या यह थोड़ा और अधिक जटिल बना देता है है कि यह एक हार्डकोडेड JavaScriptSerializer का उपयोग करता है यह सीधे लिख जवाबी कार्रवाई के लिए पहले JSON डेटा क्रमानुसार करने है।

इस पोस्ट उपयोगी
http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx

3

ActionResult एक सार वर्ग है हो सकता है। JsonResultActionResult का उप प्रकार है। तो हम दोनों प्रकारों में जेसन सामग्री वापस कर सकते हैं।

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