2012-08-30 10 views
44

Redirect और RedirectToAction के बीच उनके रिटर्न प्रकार के अलावा क्या अंतर है? हम प्रत्येक का उपयोग कब करते हैं? किसी वास्तविक जीवन परिदृश्य के साथ स्पष्टीकरण मुझे बहुत मदद करेगा।एएसपी.नेट एमवीसी में रीडायरेक्ट और रीडायरेक्ट टोएक्शन के बीच क्या अंतर है?

मैं Confusion between Redirect and RedirectToAction पर देख रहा था, लेकिन, मेरे लिए, ऐसा लगता है कि उत्तर id पैरामीटर को संभालने और उचित दृश्य लौटने की दिशा में अधिक विशिष्ट है।

उत्तर

70

RedirectToAction आपको अपने एप्लिकेशन में एक विशिष्ट क्रिया/नियंत्रक के लिए एक रीडायरेक्ट यूआरएल बनाने देता है, यानी, यह सही यूआरएल उत्पन्न करने के लिए रूट टेबल का उपयोग करेगा।

Redirect आवश्यक है कि आप रीडायरेक्ट करने के लिए एक पूर्ण यूआरएल प्रदान करें।

आप नियंत्रक Home पर एक कार्रवाई Index पैरामीटर Id साथ हों:

  1. आप RedirectToAction("Index", "Home", new { id = 5 }) उपयोग कर सकते हैं के लिए आप अपने मार्ग तालिका के आधार पर जो यूआरएल उत्पन्न होगा।

  2. आप Redirect का उपयोग कर सकते हैं लेकिन आपको स्वयं यूआरएल बनाना होगा, इसलिए आप Redirect("/Home/Index/5") पास कर सकते हैं या फिर आपकी रूट तालिका काम करती है।

  3. आप google.com (किसी बाहरी URL) RedirectToAction उपयोग करने के लिए उपयोग नहीं कर सकते, तो आप Redirect उपयोग करना चाहिए।

RedirectToAction 302 करने के लिए क्या मतलब है आपके आवेदन के भीतर रीडायरेक्ट और आप अपने मार्ग की मेज के साथ काम करने के लिए एक आसान तरीका देता है।

Redirect अन्य सभी चीज़ों, विशेष रूप से बाहरी यूआरएल के लिए 302 रीडायरेक्ट करने के लिए है, लेकिन आप अभी भी अपने आवेदन के भीतर रीडायरेक्ट कर सकते हैं, आपको बस यूआरएल बनाना होगा।

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

+1

इसका मतलब है कि रीडायरेक्ट आपको पूरी तरह से अलग यूआरएल बना सकता है Vs RedirectToAction केवल वर्तमान एप्लिकेशन तक ही सीमित है। कृपया मुझे सुधारें अगर मैं गलत हूं। –

+1

@gmailuser - आप सही हैं। – Omar

+0

धन्यवाद मेरे दोस्त। –

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