a

ABLY مقالات و مطالب مجموعه

آموزش Action Selectors & ActionVerbs) ASP.NET MVC)

آموزش Action Selectors & ActionVerbs) ASP.NET MVC)

بسم الله الرحمن الرحیم

آموزش برنامه نویسی

اموزش ASP.NET MVC (Action Selectors & ActionVerbs)

----------------------------------------------------------------------------

با سلام و وقت بخیر

در این مقاله به مطالب زیر می پردازیم:

  • Action Selectors چیست؟
  • ویژگی های Action Selectors
  • ActionVerbs چیست؟

 

اگر تاکنون آموزش ASP.NET MVC را در سایت ABLY و همراه با ما دنبال کرده باشید، آگاه هستید که آخرین مطلب آموزشی، آموزش Controller & Action Method) ASP.NET MVC) بوده است. قبل از آن نیز مطالب لازم برای درک و فهم ASP.NET MVC

را مطالعه نموده اید. اما ما باز در این مقاله این مطالب را به اشتراک میگذاریم که درک و فهم این آموزش راحتتر باشد.

بنابراین مطالب مرتبط زیر را بخوانید:

در این مقاله به اموزش ASP.NET MVC (Action Selectors & ActionVerbs) می پردازیم. امیدواریم که بازخورد کافی از این مطلب را ببرید. تا پایان این آموزش با ما همراه باشید.

mvc project

بسم الله الرحمن الرحیم

آموزش برنامه نویسی

اموزش ASP.NET MVC (Action Selectors & ActionVerbs)

----------------------------------------------------------------------------

با سلام و وقت بخیر

در این مقاله به مطالب زیر می پردازیم:

  • Action Selectors چیست؟

  • ویژگی های Action Selectors

  • ActionVerbs چیست؟

 

اگر تاکنون آموزش ASP.NET MVC را در سایت ABLY و همراه با ما دنبال کرده باشید، آگاه هستید که آخرین مطلب آموزشی، آموزش (asp.net mvc (controller and action method بوده است. قبل از آن نیز مطالب لازم برای درک و فهم ASP.NET MVC  را مطالعه نموده اید. اما ما باز در این مقاله این مطالب را به اشتراک میگذاریم که درک و فهم این آموزش راحتتر باشد.

 

بنابراین مطالب مرتبط زیر را بخوانید:

در این مقاله به اموزش ASP.NET MVC (Action Selectors & ActionVerbs) می پردازیم. امیدواریم که بازخورد کافی از این مطلب را ببرید. تا پایان این آموزش با ما همراه باشید.

Action Selectors

Action Selectors یک ویژگی است که می تواند بر روی متدهای Action اعمال شود. به این معنی که به موتور مسیریابی کمک می کند تا متد Action درست را برای رسیدگی به یک درخواست خاص انتخاب کند.

Action Selectors در MVC 5 شامل ویژگی های زیر است:

  • ActionName
  • NonAction
  • ActionVerbs

ActionName:

AttributeName به ما اجازه می دهد یک نام عمل متفاوت از نام متد مشخص کنیم. مثال زیر را در نظر بگیرید:


public class StudentController : Controller
{

    public StudentController()
    {

    }
       
    [ActionName("find")]
    public ActionResult GetById(int id)
    {
        // get student from the database 
        return View();
    }
}

در مثال بالا، ما ویژگی ActionName("find") را روی متد GetById اعمال کرده ایم. یعنی می توانیم به جای "GetByIdFind را صدا بزنیم.

این درخواست میتواند در http://localhost/student/find/1 request instead of http://localhost/student/getbyid/1 فراخوانی شود.

NonAction:

از NonAction زمانی استفاده می کنید که می خواهید نشان دهید هیچ عملی بر روی متدها صورت نمی گیرد. به مثال زیر توجه کنید:



public class StudentController : Controller
{
    public StudentController()
    {

    }
   
    [NonAction]
    public Student GetStudnet(int id)
    {
        return studentList.Where(s => s.StudentId == id).FirstOrDefault();
    }
}


ActionVerbs:

از ActionVerbs زمانی استفاده می کنیم که بخواهیم متدهای Action را بر روی Http درخواست کنیم.

به طور مثال شما می توانید دو متد Action با یک نام ایجاد کنید اما یک متد به Http، درخواست "ارسال" و دیگری درخواست "دریافت پاسخ" می دهد.

MVC framework از ActionVerbs های مختلفی از جمله: HttpGet, HttpPost, HttpPut, HttpDelete, HttpOptions   HttpPatch پشتیبانی می کند. که می توانیم براساس نیاز خود هر یک را بر روی متدهای Action اعمال کنید. در صورت استفاده نکردن از این ActionVerbs ها، ام وی سی به طور پیش فرض از HttpGet استفاده می کند.

تصویر زیر، HttpGet و HttpPost را نشان می دهد.

actionverbs in mvc

جدول زیر متدهای Http و کاربردهای آن ها را نشان می دهد:

Http method   

کاربرد

GET     

برای بازیابی اطلاعات از سرور و اضافه کردن پارامترها در query

POST   

ایجاد منبع جدید

PUT

آپدیت منابع موجود

HEAD

مانند متد GET است با این تفاوت که اطلاعات از سرور بازیابی نمی شوند.

OPTIONS         

یک درخواست برای اطلاعات موجود در مورد گزینه های ارتباطی پشتیبانی شده توسط وب سرور را نشان می دهد.

DELETE

حذف منابع موجود

PATCH

به روز رسانی کامل یا جزئی منابع

 

 

 کد زیر نیز مثالی از این متدها است:





public class StudentController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult PostAction()
    {
        return View("Index");
    }


    [HttpPut]
    public ActionResult PutAction()
    {
        return View("Index");
    }

    [HttpDelete]
    public ActionResult DeleteAction()
    {
        return View("Index");
    }

    [HttpHead]
    public ActionResult HeadAction()
    {
        return View("Index");
    }
       
    [HttpOptions]
    public ActionResult OptionsAction()
    {
        return View("Index");
    }
       
    [HttpPatch]
    public ActionResult PatchAction()
    {
        return View("Index");
    }
}







شما همچنین می توانید این متدها را با هم ادغام کنید و با استفاده از ویژگی AcceptVerbs از آن ها استفاده کنید.

متد GetAndPostAction از هر دوی HttpGet و HttpPost پشتیبانی می کند. کد زیر را مشاهده کنید:



[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult GetAndPostAction()
{
    return RedirectToAction("Index");
}

 

به این طریق شما می توانید از Action Selectors و ActionVerbs در پروژه ASP.NET MVC خود استفاده کنید.

در آخر یک مرور کلی بر روی این مقاله می کنیم:

  1. موتور مسیریابی MVC با استفاده از Action Selectors مشخص می کند که کدام متد Action فراخوانی شود.
  2. Action Selectors شامل سه ویژگی ActionName، NonAction و ActionVerbs است.
  3. AttributeName به ما اجازه می دهد یک نام عمل متفاوت از نام متد مشخص کنیم.
  4. از NonAction زمانی استفاده می کنید که می خواهید نشان دهید هیچ عملی بر روی متدها صورت نمی گیرد.
  5.  از ActionVerbs نیز زمانی استفاده می کنیم که بخواهیم متدهای Action را بر روی Http درخواست کنیم که این درخواست ها بیشتر بر پایه POST, GET, PUT است.

منبع: tutorialsteacher

"امیدواریم مقاله بالا موردتوجه شما قرار گرفته باشد"

"مجموعه ABLY"

 

 

 

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number