Пренасочване преди да се нарече конкретно действие

Дата на създаване на страница :

когато посетите сайт, който сте изградили в ASP.NET MVC, URL адресът и маршрутизирането ще извиква съответното действие на контролера, но в някои ситуации може да искате да го пренасочите към друго действие или страница, преди да се извика съответното действие.

Ако искате всяко действие да пренасочи, можете да използвате RedirectResult или RedirectToRouteResult за решаването му, но можете да използвате Controller.OnActionExecuting метод, ако искате да пренасочите по общ начин преди всяко действие се нарича. Този метод е методът, който се обработва преди всяко действие да се нарича.

Ако искате controller.OnActionИзпълнение метод да пренасочи:

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

Ако зададете Пренасочващ резултат с URL в ActionExecutingContext.Result, можете да пренасочите към посочения URL адрес. Ако не се клонирате с ако изявление, пренасочване се извършва на всички действия, които принадлежат на целевия контролер.

Можете също да зададете общ контролен клас за всеки контролер клас основен клас и прилагане OnActionExecuting метод за споделяне на обработка с няколко контролер класове.

"ActionИзпълняващ контекст.резултат" е действиеРезултат тип, така че можете да използвате RedirectToRouteResult клас или controller.redirectToAction метод.