Action Filter ها در MVC

سه شنبه 5 مرداد 1395

در این مقاله با مفاهیم فیلتر ها، انواع آن ها و نحوه ی کار هر یک آشنا خواهیم شد. همچنین با شرح مثال ، کارآیی آن ها را مورد بررسی قرار خواهیم داد.

Action Filter  ها در MVC

 در این مقاله درباره ی فیلتر ها در ASP.NET MVC خواهیم آموخت. بخش های زیر را در این مقاله مورد بررسی قرار خواهیم داد:

فیلتر چیست؟

انواع فیلترها

Action Filter ها

فیلتر چیست؟

برخی اوقات ما می خواهیم عمل مشخصی را بعد و یا قبل از عملیات خاصی انجام دهیم، و یا برخی اوقات نیاز داریم تا رفتارهای یک Action را قبل و یا بعد از آن Action انجام دهیم. برای انجام این امور یک ویژگی به نام فیلتر ها در اختیار ما قرار می گیرد.

انواع فیلتر ها :

ASP.NET MVC دارای فیلتر های زیر است :

Action Filter

Authorization Filter

Result Filter

Exception Filter

Action Filter  :

Action Filter ها برای پیاده سازی منطق هایی که قبل یا بعد از اجرای یک action تولید می شوند، مورد استفاده قرار می گیرد.

Authorization Filter :

برای تصدیق هویت و اعتبار سنجی Action Filter ها مورد استفاده قرار می گیرد.

Result Filter  :

Result Filter ها شامل منطقی هستند که از اجرای view result ها به دست می آیند. به عنوان مثال اگر بخواهید یک View  را قبل از نمایش در مرورگر تغییر بدهید، به این فیلتر نیاز خواهید داشت.

Exception Filter

Exception Filter ها برای مدیریت خطاهایی استفاده می شوند که به وسیله ی controller action ها و یا controller action result ها ایجاد شده اند. ما همچنین می توانیم از آن ها برای گزارش گیری خطاهای زمان اجرا استفاده کنیم.

بیایید بررسی Action Filter ها در ASP.NET MVC را شروع کنیم:

Action Filter ها می توانند به controller action ها و یا خود controller ها اعمال شوند. به کمک Action Filter ها ما می توانیم روش اجرای یک action و یا controller را تغییر بدهیم.

تکنولوژی MVC ، action filter های زیر را برای کاربرانش فراهم می کند:

Output Cache :

Action Filter ها خروجی action را برای مدت زمان مشخصی cache می کنند. برای مثال در کد بالا ما از واژه کلیدی cache استفاده خواهیم کرد که خروجی را برای مدت زمان 20 ثانیه cache خواهد کرد.

مدیریت خطا:

این ویژگی ، خطاهایی را که به وسیله ی action و یا controller ایجاد شده اند را مدیریت می کند. اگر هر گونه خطای زمان اجرایی اتفاق بیفتد، action را به یک صفحه خطای سفارشی سازی شده هدایت می کند. به عنوان مثال در کد زیر صفات مربوط به مدیریت خطا برای login action method آورده شده اند. هر زمان که خطایی در این متد اتفاق بیفتد، به یک view به نام "error.cshtml" هدایت خواهد شد.

تصدیق هویت:

این فیلتر برای جداسازی کاربرانی که تصدیق هویت شده اند، استفاده می شود، به این ترتیب این کاربران می توانند به منابع دسترسی داشته باشند. در تکه کد زیر برای استفاده از این فیلتر از صفتAuthorize  استفاده شده است.

اگر ما تلاش کنیم از این action استفاده کنیم، با خطای زیر مواجه خواهیم شد:

امیدوارم از این مقاله لذت برده باشید.

آموزش asp.net mvc

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید