在呼叫特定操作之前重定向
頁面創建日期 :
當您訪問 ASP.NET MVC 構建的網站時,URL 和路由將呼叫相應的控制器操作,但在某些情況下,您可能希望在呼叫相應的操作之前重定向到其他操作或其他頁面。
如果每個操作都重定向,則可以使用 RedirectResult 或 RedirectToRouteResult 解決它,但如果希望每個操作在調用之前進行通用重定向,則可以使用 Controller.OnActionExecuting 重寫方法。 此方法是在調用每個操作之前處理的。
如果要重定向 Controller.OnActionExecuting 方法,請執行以下操作:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
將 RedirectResult 設置為「ActionExecutingContext.Result」時,它將重定向到指定的 URL。 如果未使用 if 語句分支,則會對屬於目標控制器的所有操作執行重定向。
您還可以為每個控制器類的基類設置一個通用的控制器類,並實現 OnActionExecuting 方法,以便在多個控制器類之間共享處理。
由於 ActionExecutingContext.Result 的類型為 ActionResult,因此可以使用 RedirectToRouteResult 類和 Controller.RedirectToAction 方法。