किसी विशिष्ट कार्य को बुलाए जाने से पहले रीडायरेक्ट करना

पेज निर्माण की तारीख :

जब आप ASP.NET एमवीसी में आपके द्वारा बनाए गए किसी साइट पर जाते हैं, तो यूआरएल और राउटिंग संबंधित नियंत्रक कार्रवाई को कॉल करेंगे, लेकिन कुछ स्थितियों में आप संबंधित कार्रवाई को बुलाए जाने से पहले इसे किसी अन्य कार्रवाई या पृष्ठ पर रीडायरेक्ट करना चाह सकते हैं।

यदि आप प्रत्येक क्रिया को रीडायरेक्ट करना चाहते हैं, तो आप इसे हल करने के लिए रीडायरेक्टरिजल्ट या रीडायरेक्टटोरूटरिजल्ट का उपयोग कर सकते हैं, लेकिन यदि आप प्रत्येक कार्रवाई को बुलाए जाने से पहले सामान्य रूप से रीडायरेक्ट करना चाहते हैं तो आप नियंत्रक.OnActionनिष्पादित ओवरराइड विधि का उपयोग कर सकते हैं। यह विधि वह विधि है जिसे प्रत्येक क्रिया कहे जाने से पहले संभाला जाता है।

यदि आप नियंत्रक चाहते हैं। OnActionनिष्पादक विधि को रीडायरेक्ट करना:

public class MyController : Controller
{
  // 各アクションが呼ばれる前に呼ばれるメソッド
  public override void OnActionExecuting(ActionExecutingContext filterContext)
  {
    if (リダイレクトさせる条件)
    {
      filterContext.Result = new RedirectResult(url);
      return;
    }
  }
}

अगर आप एक्शनवेटिंगकेरेमें यूआरएल के साथ रीडायरेक्टरिजल्ट सेट करते हैं। रिजल्ट, आप निर्दिष्ट यूआरएल पर रीडायरेक्ट करते हैं. यदि आप यदि विवरण के साथ शाखा नहीं करते हैं, तो लक्ष्य नियंत्रक से संबंधित सभी कार्यों पर एक रीडायरेक्ट किया जाता है।

आप प्रत्येक नियंत्रक वर्ग आधार वर्ग के लिए एक सामान्य नियंत्रक वर्ग भी सेट कर सकते हैं और कई नियंत्रक कक्षाओं के साथ प्रसंस्करण साझा करने के लिए ऑनएक्शननिष्पादित विधि को लागू कर सकते हैं।

"एक्शनएग्जीलिंगक्ट्रिस.रिजल्ट" एक एक्शनरिजल्ट टाइप है, इसलिए आप रीडायरेक्टटूरूटरिजल्ट क्लास या कंट्रोलर.रीडायरेक्टटोएक्शन मेथड का इस्तेमाल कर सकते हैं।