2011-04-02 9 views

उत्तर

19

return View() एमवीसी को एचटीएमएल प्रदर्शित करने के लिए बताता है और इसे ब्राउज़र पर भेजता है।

RedirectToAction() एएसपी.नेट एमवीसी को एचटीएमएल को प्रस्तुत करने के बजाए एक अलग कार्रवाई पर पुनर्निर्देशित ब्राउज़र के साथ जवाब देने के लिए कहता है। ब्राउज़र को पुनर्निर्देशन अधिसूचना प्राप्त होगी और नई कार्रवाई के लिए एक और अनुरोध करेगा।

एक उदाहरण ...

मान लीजिए कि आप डेटा इकट्ठा करने और बचाने के लिए एक फार्म का निर्माण कर रहे हैं, अपने URL SomeEntity/Edit/23 तरह दिखता है। संपादन कार्रवाई में आप डेटा एकत्र करने के लिए इनपुट फ़ील्ड के साथ एक फॉर्म प्रस्तुत करने के लिए return View() करेंगे।

इस उदाहरण के लिए मान लें कि डेटा की सफलतापूर्वक सहेजने पर आप सहेजे गए डेटा को प्रदर्शित करना चाहते हैं। उपयोगकर्ता के सबमिट किए गए डेटा को संसाधित करने के बाद, यदि आप RedirectToAction("Index") जैसे कुछ करते हैं जहां इंडेक्स वह कार्य है जो डेटा प्रदर्शित करेगा। /SomeEntity/Index/23 पर जाने के लिए ब्राउजर को HTTP 302 (अस्थायी रीडायरेक्ट) मिलेगा।

+1

रीडायरेक्ट टॉक्शन का उपयोग पीआरजी पैटर्न को लागू करने के लिए भी किया जाता है – Tassadaque

9
  1. वापसी View एक नया अनुरोध नहीं है, यह सिर्फ दृश्य renders ब्राउज़र की पता पट्टी में URL को बदलने के बिना।
  2. वापसी RedirectToAction एक नया अनुरोध करता है और ब्राउज़र के पता बार में यूआरएल एमवीसी द्वारा जेनरेट किए गए यूआरएल के साथ अद्यतन किया जाता है।
  3. रिटर्न Redirect भी एक नया अनुरोध करता है और ब्राउज़र के पते में यूआरएल बार अपडेट किया गया है, लेकिन आपको पूरा यूआरएल निर्दिष्ट करना होगा।
  4. RedirectToRoute रूट तालिका में परिभाषित निर्दिष्ट मार्ग पर रीडायरेक्ट करता है।

RedirectToAction और Redirect के बीच, सबसे अच्छा अभ्यास अपने आवेदन कार्यों/नियंत्रकों के साथ काम कुछ भी RedirectToAction उपयोग करने के लिए है। यदि आप Redirect का उपयोग करते हैं और यूआरएल प्रदान करते हैं, तो आप को रूट तालिका बदलने पर मैन्युअल रूप से उन यूआरएल को संशोधित करने की आवश्यकता होगी।

0

उपरोक्त सभी उत्तरों के अतिरिक्त, यदि आप डेटा एनोटेशन का उपयोग करके कार्यान्वयन सत्यापन का उपयोग कर रहे हैं, तो RedirectToAction() के बजाय return View() का उपयोग करें।

प्रमाणीकरण संदेश RedirectToAction का उपयोग नहीं करेगा क्योंकि यह मॉडल मान्य नहीं है जो वैध नहीं है और आपका सत्यापन संदेश आपके दृश्य पर भी नहीं दिखाया जाएगा।

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