उपयोग:filterContext.RedirectToAction("Login", "Account");
यहाँ एक सहायक वर्ग मैं कुछ विस्तार और अधिक स्थानों में RedirectToAction सुविधा प्रदान करने के प्रश्न के लिखित तरीकों के साथ लिखा है। ओपी के लिए यह बहुत देर हो चुकी है लेकिन उम्मीद है कि यह किसी की मदद करेगी!
public static class RedirectHelper
{
// RedirectToAction Extension Methods
public static void RedirectToAction(this HttpResponseBase response, String action, String controller, object routeValues = null, bool endResponse = false)
{
response.RedirectToRoute(CreateRoute(action, controller, routeValues));
if (endResponse) response.End();
}
public static void RedirectToAction(this HttpResponse response, String action, String controller, object routeValues = null, bool endResponse = false)
{
response.RedirectToRoute(CreateRoute(action, controller, routeValues));
if (endResponse) response.End();
}
public static void RedirectToAction(this ActionExecutingContext filterContext, String action, String controller, object routeValues = null, bool endResponse = false)
{
if (endResponse) filterContext.HttpContext.Response.RedirectToAction(action, controller, routeValues, true);
else filterContext.Result = new RedirectToRouteResult(CreateRoute(action, controller, routeValues));
}
public static void RedirectToAction(this ExceptionContext filterContext, String action, String controller, object routeValues = null, bool endResponse = false)
{
if (endResponse) filterContext.HttpContext.Response.RedirectToAction(action, controller, routeValues, true);
else {
filterContext.ExceptionHandled = true;
filterContext.Result = new RedirectToRouteResult(CreateRoute(action, controller, routeValues));
}
}
// Route Value Derivation
public static RouteValueDictionary CreateRoute(String action, String controller, object routeValues = null)
{
RouteValueDictionary result = routeValues != null ?
HtmlHelper.AnonymousObjectToHtmlAttributes(routeValues) :
new RouteValueDictionary();
result["controller"] = controller;
result["action"] = action;
return result;
}
}
अधिक नियंत्रक कॉन्टैक्स हैं जो शामिल नहीं हैं लेकिन आपकी आवश्यकताओं के आधार पर इसे स्वयं जोड़ना काफी आसान होना चाहिए।
स्रोत
2017-07-12 19:06:08
आप इस कोड को 'ऑनएक्सप्शन' विधि में भी डाल सकते हैं, जब तक आप 'filterContext.ExceptionHandled = true; ' – demoncodemonkey