您可以使用RedirectToRouteResult
类型并传递它。您不必创建新对象或元组。
[NonAction]
private RedirectToRouteResult ApplyRules(){
if(condition1){
return RedirectToAction("Action1");
}
else if(condition2){
return RedirectToAction("Action2");
}
else return RedirectToAction("Action3")
}
public ActionResult MyAction()
{
RedirectToRouteResult result = ApplyRules();
// As long as you don't return your "result" from THIS METHOD
// redirect won't happen:
// return result;
return View();
}
只要您不RedirectResult
从 ACTION 方法返回,就可以将其用作您的ApplyRules()
或任何其他方法的返回参数。
如果您的ApplyRules()
方法在 Controller 之外,则不能使用RedirectToAction
helper。在这种情况下,您可以RedirectToRouteResult
像这样生成:
var routeValues = new System.Web.Routing.RouteValueDictionary();
routeValues.Add("controller", "Account");
routeValues.Add("action", "Register");
var result = new RedirectToRouteResult(routeValues);