شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری 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) نامیده می شوند. متدهای اجرایی همانند سایر متدهای معمولی برنامه هستند، با این تفاوت ها که :

  1. متدهای اجرایی بایستی عمومی (Public) تعریف شوند. متدهای اجرایی را خصوصی (Private) و یا محافظت شده (Protected) نمی توان تعیین کرد.
  2. متدهای اجرایی را به صورت چندگانه در هنگام فراخوانی یا overload نمی توان تعریف کرد. (یعنی نمی توان یک متد را با چندین حالت مختلف برای پارامترهای ورودی تعریف کرد).
  3. متدهای اجرایی نمی توانند ثابت یا Static Method باشند.

تصویر زیر، نحوه کامل تعریف یک کنترلر کلاس همراه با متد اجرایی و سایر اطلاعات را نشان داده است :

آموزش کار با متد اجرایی (Action Method) در ASP.Net MVC

همانطور که در تصویر فوق مشاهده می کنید، متد 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 به همراه شرح عملکرد آن ها نشان داده است :

جدول انواع حالت های خروجی
ViewResult
این کلاس یک فایل HTML یا کدهای آن را به عنوان خروجی بر می گرداند.
Empty Result
این کلاس هیچ مقداری را به عنوان خروجی بر نمی گرداند و در حقیقت عملکردی مثل حال void دارد.
Content Result
این کلاس یک مقدار متنی یا کاراکتری را به عنوان خروجی بر می گرداند.
FileContent Result
File Path Result
File Stream Result
این کلاس محتویات یک فایل را به عنوان خروجی بر می گرداند.
Java Script Result
این کلاس یک اسکریپت جاوا اسکریپت را به عنوان خروجی بر می گرداند.
JSON Result
این کلاس یک شی JSON را به عنوان خروجی بر می گرداند که می توان آن را در Ajax به کار برد.
Redirect Result
این کلاس برنامه را به یک URL جدید Redirect یا تغییر مسیر می دهد.
Redirect To Route Result
این کلاس برنامه را به یک متد اجرایی دیگر در همان کنترلر یا کنترلر دیگر ارسال می کند.
Partial View Result
این کلاس کد HTML یک Partial View را بر می گرداند.
Http Unanthorized Result
این کلاس به دلیل مسائل رخ داده، وضعیت HTTP 403 را بر می گرداند.

کلاس Action Result کلاس پایه یا مادر برای تمامی کلاس های اشاره شده در جدول فوق است. بنابراین کلاس Action Result را می توانید به عنوان نوع برگشتی هر یک از متدهای اجرایی که از کلاس های جدول فوق استفاده کنند، نیز قرار دهید. اما به هر حال با استفاده از جدول فوق، می توانید یک کلاس مقدار برگشتی خاص را برای متد خود تعیین نمایید. متد ()Index در کنترلر StudentController در تصویر فوق، از متد View برای بازگرداندن View Results (که خود از کلاس Action Result مشتق شده است) استفاده می کند. متد ()View در کلاس پایه Controller تعریف شده است. همچنین این متد، شامل چندین متد مختلف دیگر نیز هست، که به صورت اتوماتیک، نوع داده ای مناسب برای خروجی متد را طبق جدول زیر، بر می گردانند.

جدول متد های View
ViewResult
این متد فایل HTML یا کدهای آن را به عنوان خروجی بر می گرداند. ()View
()View
EmptyResult
این متد هیچ خروجی را بر نمی گرداند و عملکردی شبیه void در زبان C# دارد.
 
ContentResult
این متد یک مقدار متنی یا کاراکتری را به عنوان خروجی بر می گرداند. ()Content
()Content
FileContentResult,
FilePathResult,
FileStreamResult
این متد محتویات یک فایل را به عنوان خروجی بر می گرداند. ()File
()File
JavaScriptResult
این متد یک اسکریپت جاوا اسکریپت را به عنوان خروجی بر می گرداند. ()Java Script
()JavaScript
JsonResult
این متد یک شی Json را به عنوان خروجی بر می گرداند که آن را می توان در Ajax استفاده کرد . ()Json
()Json
RedirectResult
این متد، صفحه را به یک URL جدید redirect یا منتقل می کند. ()Redirect
()Redirect
RedirectToRouteResult
این متد، صفحه را به یک متد اجرایی (action) دیگر در همان کنترلر یا کنترلر دیگری ارسال می کند. ()Redirect To Route
()RedirectToRoute
PartialViewResult
این متد یک فایل HTML را به عنوان خروجی بر می گرداند. Partial View
()PartialView
HttpUnauthorizedResult
این متد وضعیت HTTP 403 را به عنوان خروجی بر می گرداند.
 

همانطور که در جدول فوق مشاهده می کنید، متد (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 بروید.

نکته:

نکاتی که بایستی به خاطر داشته باشید :

  1. کلیه متدهای عمومی (Public Method) عضو کلاس Controller Class، متدهای اجرایی (action methods) نامیده می شوتد.
  2. متدهای اجرایی (action methods) دارای محدودیت های زیر هستند : A) متدهای اجرایی بایستی عمومی یا Public باشند و نمی توان آن ها را خصوصی یا محافظت شده تعریف نمود.
    B) متدهای اجرایی را به صورت مضاعف یا overload (دارای چند حالت مختلف برای دریافت پارامترهای ورودی) تعریف نمود.
    C) کلاس Action Result کلاس پایه برای تمامی مقادیر خروجی است که از متدهای اجرایی حاصل می شوند.
    D) کلاس پایه کنترلر حاوی متدهایی است که از او نواع خروجی مناسب مثل ()View، ()Content، ()File و جاوا اسکریپت و ... را بر می گرداند.
    E) متدهای اجرایی می توانند شامل پارامترهای تهی (Nullable) نیز باشند.

در درس بعدی، به آموزش کار با Action Selectors در Asp.Net MVC خواهیم پرداخت.

1396/01/30 7132 1741
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...