यदि पुनर्निर्देशित नियंत्रक उसी से विरासत में मिला है baseController
जहां हम OnActionExecuting
विधि को ओवरराइड करते हैं तो पुनरावर्ती लूप का कारण बनता है। मान लें कि हम इसे खाता नियंत्रक की लॉगिन कार्रवाई में पुनर्निर्देशित करते हैं, तो लॉगिन क्रिया OnActionExecuting
विधि कहेगी और उसी लॉगिन क्रिया को बार-बार पुनर्निर्देशित करेगी ... इसलिए हमें OnActionExecuting
मौसम की जाँच के लिए विधि में एक जाँच लागू करनी चाहिए, यदि अनुरोध उसी नियंत्रक से हो तो फिर इसे दोबारा लॉगिन करने की कार्रवाई न करें। यहाँ कोड है:
संरक्षित ओवरराइड।
void OnActionExecuting(ActionExecutingContext filterContext)
{
try
{
some condition ...
}
catch
{
if (filterContext.Controller.GetType() != typeof(AccountController))
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Account" }, { "action", "Login" } });
}
}
}
new RedirectResult(url)
आप भी इस्तेमाल कर सकते हैंnew RedirectToAction(string action, string controller)
। आपके द्वारा अपना उत्तर पोस्ट करने के बाद इसे MVC में जोड़ा जा सकता है। आपके समाधान ने मुझे वैसे भी सही रास्ते पर ला खड़ा किया।