Sådan omdirigeres, før en bestemt handling kaldes
Når du besøger et websted, du bygger på ASP.NET MVC, kalder URL'en og routingen den tilsvarende controllerhandling, men i nogle situationer kan du omdirigere den til en anden handling eller side, før den tilsvarende handling kaldes.
Hvis du vil have hver handling til at omdirigere, kan du bruge RedirectResult eller RedirectToRouteResult til at løse det, men du kan bruge metoden Controller.OnActionExecuting-tilsidesættelsesmetoden, hvis du vil omdirigere til fælles, før hver handling kaldes. Denne metode er den metode, der håndteres, før hver handling kaldes.
Hvis metoden Controller.OnActionExecuting skal omdirigeres:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Hvis du angiver et RedirectResult med en URL-adresse i ActionExecutingContext.Result, omdirigeres du til den angivne URL-adresse. Hvis du ikke forgrener med en hvis-sætning, udføres der en omdirigering på alle handlinger, der tilhører destinationscontrolleren.
Du kan også angive en fælles controllerklasse for hver controllerklassebasisklasse og implementere Metoden OnActionExecuting til at dele behandling med flere controllerklasser.
"ActionExecutingContext.Result" er en ActionResult-type, så du kan bruge klassen RedirectToRouteResult eller metoden Controller.RedirectToAction.