PDA

View Full Version : چرخه ی Controller در ASP.NET Core



hakim22
شنبه 05 آبان 1397, 15:34 عصر
در فریم ورک ASP.NET Core MVC به ازای هر Request یک نمونه ی جدید از کنترلر ساخته میشود. از آنجایی که با هر درخواست جدید شی HttpContext تغییر می کند باید نمونه سازی کنترلر هم صورت گیرد.

149154

در کلاس مادر Controller دو متد OnActionExecuting و OnActionExecuted وجود دارد که قبل و بعد از اجرای هر اکشن اجرا میشوند.



public class HomeController : Controller
{
public override void OnActionExecuting(ActionExecutingContext context)
{
//Before action
}

public IActionResult Index()
{
//Action
return View();
}


public override void OnActionExecuted(ActionExecutedContext context)
{
//After action
}
}


معمولا از این متدها برای اعمال تغییرات روی HttpContext قبل از اینکه وارد اکشن شود استفاده می کنیم. هر چند که روشها دیگری مانند استفاده از فیلتر ها وجود دارد اما گاهی این تکنیک به کمک ما می آید. مثلا می توانیم از این دو متد برای پر کردن آی دی کاربر یا ثبت لوگ استفاده کنیم.