متدهای لازم برای نوشتن یک BaseController برای کنترلر های MVC
How to write BaseController for MVC Controller’s
برای نوشتن یک BaseController که می توان سایر Controller های MVC را از آن ارث بری کرد بشکل زیر عمل می کنیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
namespace MyProject.Controllers { public class BaseController : Controller { /// Must be disable, otherwise ExecuteCore() will not be invoked in MVC4 like was in MVC3! protected override bool DisableAsyncSupport { get { return true; } } protected override void ExecuteCore() { // // Do Somthing // base.ExecuteCore(); } } } |
برای یک بیس کنترلر حداقل دو تا متد باید override (تحریف، فکر کنم یکی از معانی درستش این باشد) شود. اگر متد
1 |
DisableAsyncSupport |
ذکر نشود ExecuteCore صدا زده نمی شود.
چون BaseController یا بعبارتی ExecuteCore قبل از همه کنترلر ها صدا زده می شوند، بنابر این شاید محل مناسبی مثلاب برای نگهداری کوکی Cookie تغییر زبان ها یا کالچرها Culture ها باشد. و یا حتی می توان فیلتر های Authorization Filter را اینجا پیداه سازی کرد.
هرچند بعضی ها مخالف ایجاد BaseController ها هستند و معتقدند نیازی به ایجاد آنها نیست.
1 |