Uudelleenohjaus ennen tietyn toiminnon kutsumista
Kun käyt ASP.NET MVC:ssä rakennettavassa sivustossa, URL-osoite ja reititys kutsuvat vastaavaa ohjaintoimintoa, mutta joissakin tilanteissa haluat ehkä ohjata sen toiseen toimintoon tai sivulle ennen vastaavan toiminnon kutsumista.
Jos haluat kunkin toiminnon uudelleenohjattavan, voit ratkaista sen Uudelleenohjauksen tai UudelleenohjauksenToRouteResult avulla, mutta voit käyttää Controller.OnActionExecuting-ohitusmenetelmää, jos haluat ohjata uudelleen yhteisen ennen kunkin toiminnon kutsumista. Tämä menetelmä on menetelmä, jota käsitellään ennen kunkin toiminnon kutsuminen.
Jos haluat Controller.OnActionExecuting-menetelmän uudelleenohjattavan:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Jos määrität RedirectResult-ominaisuuden URL-osoitteeksi ActionExecutingContext.Result-kohdassa, ohjaat määritetyn URL-osoitteen uudelleen. Jos et haaraudu if-lauseen kanssa, uudelleenohjaus suoritetaan kaikille kohdeohjaimeen kuuluville toiminnoille.
Voit myös määrittää kullekin Controller-luokan perusluokalle yleisen Ohjain-luokan ja ottaa käyttöön OnActionExecuting-menetelmän, jolla käsittely jaetaan useiden ohjainluokkien kanssa.
"ActionExecutingContext.Result" on ActionResult-tyyppi, joten voit käyttää RedirectToRouteResult-luokkaa tai Controller.RedirectToAction-menetelmää.