با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. در بخش قبلی با Controller در ASP.NET MVC آشنا شدید ، در این بخش قصد داریم Action method در ASP.NET MVC یا متدهای اجرایی در ASP.NET MVC را معرفی نموده و آنها را شرح دهیم. تا پایان این بخش همراه ما باشید.
تمام متدهای عمومی یک کلاس کنترلر، Action نام دارند. این نوع متد ها دارای محدودیت هایی هستند:
این مثالی از متد Index action در StudentController است:
همانطور که در شکل بالا می بینید، متد Index یک متد public است و ActionResult را با استفاده از متد () View به نمایش می گذارد.
متد () View در کلاس پایه Controller تعریف شده است، که ActionResult مناسب را برمی گرداند.
هر Controller می تواند متد پیش فرض action را به عنوان پیکربندی Route در کلاس RouteConfig داشته باشد.
به طور پیش فرض، Index یک متد پیش فرض عمل برای هر Controller است. که به عنوان ریشه ی پیش فرض پیکربندی شده است که در زیر نشان داده شده است:
1 2 3 4 5 6 7 | routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}/{name}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }); |
با این وجود در صورت نیاز، شما می توانید نام action پیش فرض را در کلاس RouteConfig تغییر دهید.
چارچوب MVC شامل کلاس های مختلف result می شود که می تواند از یک متد action بازگردد.
کلاسهای result انواع مختلفی از result ها مانند HTML، فایل، رشته، json، جاوا اسکریپت و غیره را نشان می دهد.
جدول زیر تمام کلاس های result موجود در ASP.NET MVC را لیست می کند:
Result Class | توضیحات |
---|---|
ViewResult | HTML و نشانه گذاری را نشان می دهد. |
EmptyResult | پاسخی نشان نمی دهد. |
ContentResult | نشانگر رشته ای است. |
FileContentResult/ FilePathResult/ FileStreamResult | محتوای یک فایل را شامل می شود. |
JavaScriptResult | اسکریپت یک JavaScript را شامل می شود. |
JsonResult | شامل JSON هایی که می تواند در AJAX پشتیبانی شود. |
RedirectResult | شامل تغییر مسیر فعلی به یک مسیر جدید می شود. |
RedirectToRouteResult | شامل action هایی از سایر کنترلر ها می شود. |
PartialViewResult | HTML را از نمای Partial برمی گرداند. |
HttpUnauthorizedResult | وضعیت HTTP 403 را برمی گرداند. |
کلاس ActionResult یک کلاس پایه ای از تمام کلاس های Result بالا می باشد.
بنابراین متدهای action می تواند نتایج بالا را برگرداند.
می توانید کلاس ActionResult را به عنوان یک نوع بازگشتی از متد action مشخص کنید.
متد () index ساختار StudentController در شکل فوق، از متد ()View برای برگرداندن ActionResult استفاده می کند.
متد () View در کلاس Controller پایه تعریف شده است.
همچنین متدهای متفاوتی است که به طور خودکار نوع خاصی از نتایج را که در جدول زیر اشاره شده، نشان می دهد:
Result Class | Description | Base Controller Method |
---|---|---|
ViewResult | HTML و نشانه گذاری را نشان می دهد. | () View |
EmptyResult | پاسخی نشان نمی دهد. | |
ContentResult | نشانگر رشته ای است. | () Content |
FileContentResult, FilePathResult, FileStreamResult | محتوای یک فایل را شامل می شود. | () File |
JavaScriptResult | اسکریپت یک JavaScript را شامل می شود. | () JavaScript |
JsonResult | شامل JSON هایی که می تواند در AJAX پشتیبانی شود. | () Json |
RedirectResult | شامل تغییر مسیر فعلی به یک مسیر جدید می شود. | () Redirect |
RedirectToRouteResult | شامل action هایی از سایر کنترلر ها می شود. | () RedirectToRoute |
PartialViewResult | HTML را از نمای Partial برمی گرداند. | () PartialView |
HttpUnauthorizedResult | وضعیت HTTP 403 را برمی گرداند. |
همانطور که در جدول بالا مشاهده می کنید، متد ViewResult نتایج View Returns را باز می گرداند.
متد محتوا به رشته بازگردانده می شود، File method محتویات یک فایل را باز می کند و…
از متدهای مختلف ذکر شده در جدول فوق استفاده کنید تا انواع مختلفی از نتایج را از یک متد action باز گردانده شود.
هر متد action می تواند پارامترهای ورودی را در قالب متدهای نرمال دریافت کند.
این می تواند نوع داده اولیه یا پارامترهای پیچیده یک نوع باشد که در مثال زیر نشان داده شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [HttpPost] public ActionResult Edit(Student std) { // update student to the database return RedirectToAction("Index"); } [HttpDelete] public ActionResult Delete(int id) { // delete student from the database whose id matches with specified id return RedirectToAction("Index"); } |
توجه داشته باشید که پارامترهای متد action می تواند نوع NULL باشد.
به طور پیش فرض، مقادیر پارامترهای متد action از جمع آوری داده های درخواست شده بازیابی می شوند.
داده های جمع آوری شده شامل نام / ارزش برای داده های فرم یا مقادیر رشته یا مقدار کوکی می باشد.
نکات زیر را به خاطر بسپارید:
۱- تمام متدهای public در کلاس Controller متدهای Action نامیده می شود.
۲- متدهای Action محدودیت های زیر را دارند:
۳- ActionResult یک کلاس پایه برای انواع نتایج بازگشتی از متد Action است.
۴- کلاس Controller پایه شامل متدهایی از جمله ()View(), Content(), File(), JavaScript است که نتیجه ی مناسب را بر می گرداند.
۵- متدهای Action می تواند شامل مقادیر NULL باشد.
در مباحث فوق با کلاس Action و همچنین با انواع متدهای Action و کاربردهای آن ها در ASP MVC آشنا شدید، در بخش بعد شما را با انتخابگرهای Action آشنا خواهیم کرد.