Átirányítás egy adott művelet megnevezése előtt
amikor meglátogat egy webhelyet, amelyet ASP.NET MVC-ben épít, az URL-cím és az útválasztás meghívja a megfelelő vezérlőműveletet, de bizonyos helyzetekben érdemes átirányítani egy másik műveletre vagy oldalra, mielőtt a megfelelő műveletet meghívják.
Ha azt szeretné, hogy minden művelet átirányítsa, a RedirectResult vagy a RedirectToRouteResult segítségével megoldhatja azt, de használhatja a Controller.OnActionExecuting felülbírálási módszert, ha az egyes műveletek megírása előtt át szeretné irányítani a közös műveleteket. Ez a módszer az a módszer, amelyet az egyes műveletek megnevezése előtt kezelnek.
Ha azt szeretné, hogy a Controller.OnActionExecuting metódus átirányítsa:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Ha az ActionExecutingContext.Result fájlban url-címmel rendelkező RedirectResult-t állít be, átirányítja a megadott URL-címre. Ha nem ágaz iktat egy if utasítással, a rendszer átirányítást hajt végre a célvezérlőhöz tartozó összes műveleten.
Az egyes Controller-osztályalaposztályhoz beállíthat egy közös vezérlőosztályt is, és az OnActionExecuting metódust több vezérlőosztályral való megosztásához is beállíthat.
Az "ActionExecutingContext.Result" egy ActionResult típus, így használhatja a RedirectToRouteResult osztályt vagy a Controller.RedirectToAction metódust.