لإعادة التوجيه قبل استدعاء إجراء معين

تاريخ إنشاء الصفحة :

عند زيارة موقع تقوم بإنشاء في 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 مع عنوان URL في ActionExecutingContext.Result، يمكنك إعادة التوجيه إلى عنوان URL المحدد. إذا لم تقم بتفرع مع عبارة إذا، يتم تنفيذ إعادة توجيه على كافة الإجراءات التي تنتمي إلى وحدة تحكم الهدف.

يمكنك أيضًا تعيين فئة وحدة تحكم مشتركة لكل فئة أساسية من فئة وحدة التحكم وتنفيذ أسلوب OnActionExecuting لمشاركة المعالجة مع فئات تحكم متعددة.

"ActionExecutingContext.Result" هو نوع ActionResult، بحيث يمكنك استخدام فئة RedirectToRouteResult أو أسلوب Controller.RedirectToAction.