Para redirecionar antes que uma ação específica seja chamada

Data de criação de página :

quando você visita um site que você constrói em ASP.NET MVC, a URL e o roteamento chamarão a ação correspondente do controlador, mas em algumas situações você pode querer redirecioná-lo para outra ação ou página antes que a ação correspondente seja chamada.

Se você quiser que cada ação seja redirecionada, você pode usar RedirectResult ou RedirectToRouteResult para resolvê-la, mas você pode usar o método de substituição Controller.OnActionExecuting se quiser redirecionar em comum antes que cada ação seja chamada. Este método é o método que é tratado antes de cada ação ser chamada.

Se você quiser que o método Controller.OnActionExecuting redirecione:

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

Se você definir um RedirectResult com uma URL no ActionExecutingContext.Result, você redirecionará para a URL especificada. Se você não se ramificar com uma declaração if, um redirecionamento é realizado em todas as ações que pertencem ao controlador-alvo.

Você também pode definir uma classe controladora comum para cada classe base de classe Controller e implementar o método OnActionExecuting para compartilhar processamento com várias classes de controlador.

"ActionExecutingContext.Result" é um tipo actionResult, para que você possa usar a classe RedirectToRouteResult ou o método Controller.RedirectToAction.