Nukreipti prieš pašaukiant konkretų veiksmą

Puslapio sukūrimo data :

kai lankotės svetainėje kuriate ASP.NET MVC, URL ir kelvados bus skambinti atitinkamą valdiklio veiksmą, tačiau kai kuriais atvejais galite nukreipti jį į kitą veiksmą ar puslapį prieš atitinkamą veiksmą vadinamas.

Jei norite, kad kiekvienas veiksmas būtų peradresavimas, galite naudoti DirectResult arba RedirectToRouteResult, kad jį išspręstumėte, bet galite naudoti metodą Controller.OnActionExecuting nepaisyti, jei prieš iškviesdami kiekvieną veiksmą norite peradresuoti. Šis metodas yra metodas, kuris yra tvarkomas prieš kiekvieną veiksmą vadinamas.

Jei norite Controller.OnActionExecuting būdas nukreipti:

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

Jei nustatysite RedirectResult su URL ActionExecutingContext.Result, galite nukreipti į nurodytą URL. Jei neturite filialas su jei išrašas, peradresavimas atliekamas visus veiksmus, kurie priklauso paskirties valdiklis.

Taip pat galite nustatyti bendrą valdiklio klasės kiekvienovaldiklio klasės bazinės klasės ir įgyvendinti OnActionExecuting būdas bendrinti apdorojimo su kelių valdiklio klases.

"ActionExecutingContext.Result" yra ActionResult tipas, todėl galite naudoti redirectToRouteResult klasės arba Controller.RedirectToAction metodas.