Para redirigir antes de que se llame a una acción específica
cuando visita un sitio que compila en ASP.NET MVC, la dirección URL y el enrutamiento llamarán a la acción de controlador correspondiente, pero en algunas situaciones es posible que desee redirigirlo a otra acción o página antes de llamar a la acción correspondiente.
Si desea que cada acción redirija, puede usar RedirectResult o RedirectToRouteResult para resolverla, pero puede usar el método de invalidación Controller.OnActionExecuting si desea redirigir en común antes de llamar a cada acción. Este método es el método que se controla antes de llamar a cada acción.
Si desea que el método Controller.OnActionExecuting redirija:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Si establece un RedirectResult con una dirección URL en ActionExecutingContext.Result, redirigirá a la dirección URL especificada. Si no se bifurca con una instrucción if, se realiza una redirección en todas las acciones que pertenecen al controlador de destino.
También puede establecer una clase Controller común para cada clase base de clase Controller e implementar el método OnActionExecuting para compartir el procesamiento con varias clases Controller.
"ActionExecutingContext.Result" es un tipo ActionResult, por lo que puede usar la clase RedirectToRouteResult o el método Controller.RedirectToAction.