
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش متدهای اجرایی Action Method در ASP.Net MVC
آموزش کار با متد اجرایی (Action Method) در ASP.Net MVC :
در این درس، به آموزش کار با متد اجرایی یا Action Method در ASP.Net MVC خواهیم پرداخت.
کلیه متدهای عمومی (Public Method) موجود در یک کلاس کنترلر، متد اجرایی (Action Method) نامیده می شوند. متدهای اجرایی همانند سایر متدهای معمولی برنامه هستند، با این تفاوت ها که :
- متدهای اجرایی بایستی عمومی (Public) تعریف شوند. متدهای اجرایی را خصوصی (Private) و یا محافظت شده (Protected) نمی توان تعیین کرد.
- متدهای اجرایی را به صورت چندگانه در هنگام فراخوانی یا overload نمی توان تعریف کرد. (یعنی نمی توان یک متد را با چندین حالت مختلف برای پارامترهای ورودی تعریف کرد).
- متدهای اجرایی نمی توانند ثابت یا Static Method باشند.
تصویر زیر، نحوه کامل تعریف یک کنترلر کلاس همراه با متد اجرایی و سایر اطلاعات را نشان داده است :

همانطور که در تصویر فوق مشاهده می کنید، متد Index یک متد عمومی (Public) بوده که با استفاده از متد ()View مقدار ActionResult را به عنوان خروجی بر می گرداند.
متد ()View در کلاس پایه Controller Base Class تعریف شده و خروجی مناسب را با استفاده از ActionResult بر می گرداند.
آموزش تعیین متد اجرایی پیش فرض (Default Action Method) :
هر کنترلر، همانطور که در کلاس مسیردهی کلی پروژه یا RouteConfig Class تعیین می شود، می تواند یک متد اجرایی پیش فرض یا default داشت باشد. به صورت پیش فرض، متد Index به عنوان متد اجرایی پیش فرض هر کنترلر، ایفای نقش می کند. نحوه تعیین این متد را در فایل مسیردهی یا Routing زیر نیز نشان داده است :
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}/{name}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
اما شما می توانید نام متد اجرایی پیش فرض را بر هر کنترلر مورد نظرتان در کلاس RouteConfig پروژه تغییر دهید.
آموزش کار با ActionResult :
چهارچوب کاری MVC، کلاس های مختلفی را جهت ارسال خروجی یک متد (Result) شامل می شود. این کلاس ها مقدار خروجی یک متد اجرایی action method را بر می گرداند.
این کلاس های خروجی (Result) مختلف درواقع به جای انواع داده ای رایج به عنوان خروجی مثل فایل html، یک فایل ساده file، متن string، متغیر JSON، کد JavaScript و ... قرار می گیرند. جدول زیر انواع کلاس های خروجی (result class) موجود در چهارچوب کاری ASP.Net MVC به همراه شرح عملکرد آن ها نشان داده است :
File Path Result
File Stream Result
کلاس Action Result کلاس پایه یا مادر برای تمامی کلاس های اشاره شده در جدول فوق است. بنابراین کلاس Action Result را می توانید به عنوان نوع برگشتی هر یک از متدهای اجرایی که از کلاس های جدول فوق استفاده کنند، نیز قرار دهید. اما به هر حال با استفاده از جدول فوق، می توانید یک کلاس مقدار برگشتی خاص را برای متد خود تعیین نمایید.
متد ()Index در کنترلر StudentController در تصویر فوق، از متد View برای بازگرداندن View Results (که خود از کلاس Action Result مشتق شده است) استفاده می کند. متد ()View در کلاس پایه Controller تعریف شده است. همچنین این متد، شامل چندین متد مختلف دیگر نیز هست، که به صورت اتوماتیک، نوع داده ای مناسب برای خروجی متد را طبق جدول زیر، بر می گردانند.
FilePathResult,
FileStreamResult
همانطور که در جدول فوق مشاهده می کنید، متد (View Method) مقدار View Result، متد Content یک متن String، متند File محتویات یک فایل و به همین تریت سایر متدها، مقداری متناسب با نوع خود را بر می گردانند. می توانید از متدهای مختلفی که در جدول فوق بیان شدند، برای دریافت خروجی های متفاوت از یک متد اجرایی action method استفاده کنید.
آموزش کار با پارامترهای Action Methods در MVC :
هر متد اجرایی (action methiods) می تواند همانند متدهای معمولی دیگر، یک یا چند پارامتر را به عنوان مقدار ورودی دریافت کند. این پارامترها می توانند انواع داده ای معمولی (int,string,…) و یا انواع داده پیچیده مثل اشیاء، فایل .... باشند. نحوه استفاده از پارامترها در متدهای اجرایی MVC در کد مثال زیر به صورت عملی نشان داده شده است :
[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 method می توانند از نوع تهی (Nullable) نیز باشند.
به صورت پیش فرض، مقادیر پارامترهای یک action methoid از مجموعه اطلاعات درخواست کاربر (Request Data Collection) دریافت می شوند. مجموعه اطلاعات درخواست های کاربر، شامل جفت های نام/مقدار (name/values) بوده که حامل اطلاعات فرم های صفحات و یا query stiring های صفحه می باشد. قابلیت اتصال مدل ها (model biding) در ASP.Net MVC به صورت خودکار، مقادیر query stiring های URL صفحه و اطلاعات فرم های وب را به پارامترهای متناظر آن ها، در متدهای اجرایی در صورتی که نام شان یکسان باشد، متصل می کند.
برای اطلاعات بیشتر به درس آموزش اتصال مدل ها (model biding) در ASP.Net MVC بروید.
نکاتی که بایستی به خاطر داشته باشید :
- کلیه متدهای عمومی (Public Method) عضو کلاس Controller Class، متدهای اجرایی (action methods) نامیده می شوتد.
-
متدهای اجرایی (action methods) دارای محدودیت های زیر هستند :
A) متدهای اجرایی بایستی عمومی یا Public باشند و نمی توان آن ها را خصوصی یا محافظت شده تعریف نمود.
B) متدهای اجرایی را به صورت مضاعف یا overload (دارای چند حالت مختلف برای دریافت پارامترهای ورودی) تعریف نمود.
C) کلاس Action Result کلاس پایه برای تمامی مقادیر خروجی است که از متدهای اجرایی حاصل می شوند.
D) کلاس پایه کنترلر حاوی متدهایی است که از او نواع خروجی مناسب مثل ()View، ()Content، ()File و جاوا اسکریپت و ... را بر می گرداند.
E) متدهای اجرایی می توانند شامل پارامترهای تهی (Nullable) نیز باشند.
در درس بعدی، به آموزش کار با Action Selectors در Asp.Net MVC خواهیم پرداخت.