मैं काफी MVC करने के लिए नया है, लेकिन यकीन नहीं वास्तव में कौन-पुनर्निर्देशन ... की जगह मानक WebForms में इस्तेमाल रीडायरेक्ट IE मानक Response.Redirect()
एएसपी.नेट एमवीसी: एमवीसी में पृष्ठों/कार्यों पर रीडायरेक्ट करने का सही तरीका क्या है?
उदाहरण के लिए, मैं परिदृश्यों की एक जोड़ी के अन्य पृष्ठों पर रीडायरेक्ट करना होगा हूँ:
1) जब उपयोगकर्ता लॉग आउट करता है (कार्रवाई में फॉर्म साइनआउट) मैं लॉगिन पेज पर रीडायरेक्ट करना चाहता हूं।
2) एक नियंत्रक या आधार नियंत्रक घटना जैसे Initialize
में, मैं एक और पेज (AbsoluteRootUrl + नियंत्रक + एक्शन) रीडायरेक्ट करना चाहते हैं
ऐसा लगता है कि कई बार रीडायरेक्ट कुछ मामले हैं जहां त्रुटियों, कुछ करने का कारण बनता में कहा जाता हो इस तथ्य के साथ क्या एक पृष्ठ पहले से ही पुनर्निर्देशित किया जा रहा है? वर्तमान अनुरोध को कैसे रद्द कर सकते हैं और बस रीडायरेक्ट कर सकते हैं?
अद्यतन:
इस सवाल (System.Web.Mvc.Controller Initialize) का जवाब इंगित करता है कि Initialize
नहीं किया जाना चाहिए और OnActionExecuting
इस्तेमाल किया जाना चाहिए?
Initialize
पर कोई टिप्पणी क्यों नहीं दी जानी चाहिए या OnAuthorization
बेहतर विकल्प नहीं है?
अधिक जानकारी:
इस ब्लॉग पोस्ट (http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/) इंगित करता है कि OnActionExecuting
मैं आधार नियंत्रक कक्षा में है कि घटना को यह जोड़ने लगता है (जैसा कि ऊपर के लिंक में किया है) प्रमाणीकरण के लिए उपयोगी है हर रूप में ठीक है पृष्ठ एमवीसी में एक एक्शन चलाता है इसलिए बहुत अंतर नहीं करना चाहिए और रीडायरेक्ट करने की क्षमता होना आसान होना चाहिए। यह समझ में आता है, लेकिन मुझे यह भी समझ में आता है कि इस घटना से पहले किसी घटना में चीजें की जा सकती हैं और हम सवाल करते हैं कि ये घटनाएं क्या हैं? OnActionExecuting
एक जाना दे दिया जाएगा ..
क्या इस आधार नियंत्रक को प्रारंभ घटना है आपका उल्लेख किया:
मार्ग इंजन स्वचालित रूप से अनुरोध करता है कि में आते हैं, यदि आप मतलब आप बस कर एक नियंत्रक पर सूचकांक कार्रवाई से रीडायरेक्ट करना चाहते हैं संभालती है? –
@ माहेश वेलागा: मेरे पास बेस कंट्रोलर है जो प्रारंभिक ईवेंट को ओवरराइड करता है यानी संरक्षित ओवरराइड शून्य प्रारंभ करें (System.Web.Routing.RequestContext requestContext) ... मेरे पास कुछ सुरक्षा जांच हैं और उन चेक के आधार पर उपयोगकर्ताओं को रीडायरेक्ट करने की आवश्यकता है –
क्यों tempdata या viewdata में कुछ मान सेट न करें और जब आप उस मूल्य के आधार पर नियंत्रक कार्रवाई तक पहुंचें जब आप RedirectToAction का उपयोग करके रीडायरेक्ट कर सकते हैं? –