Pentru a redirecționa înainte ca o anumită acțiune să fie
atunci când vizitați un site pe care îl construiți în ASP.NET MVC, URL-ul și rutarea vor apela acțiunea controlerului corespunzător, dar în unele situații poate doriți să îl redirecționați către o altă acțiune sau pagină înainte de apelarea acțiunii corespunzătoare.
Dacă doriți ca fiecare acțiune să redirecționeze, utilizați RedirectResult sau RedirectToRouteResult pentru a o rezolva, dar aveți posibilitatea să utilizați metoda de suprascrie Controller.OnActionExecuting dacă doriți să redirecționați în comun înainte de fiecare acțiune este numit. Această metodă este metoda care este manipulat înainte de fiecare acțiune este numit.
Dacă doriți metoda Controller.OnActionExecuting pentru a redirecționa:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Dacă setați un RedirectResult cu un URL în ActionExecutingContext.Result, redirecționați la URL-ul specificat. Dacă nu ramificațicu o instrucțiune dacă, se efectuează o redirecționare pe toate acțiunile care aparțin controlerului țintă.
De asemenea, puteți seta o clasă de controler comun pentru fiecare clasă de controler de clasă și să pună în aplicare metoda OnActionExecuting pentru a partaja procesarea cu mai multe clase de controler.
"ActionExecutingContext.Result" este un tip ActionResult, astfel încât să puteți utiliza clasa RedirectToRouteResult sau metoda Controller.RedirectToAction.