آموزش Controller & Action Method) ASP.NET MVC)

آموزش Controller & Action Method) ASP.NET MVC)

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

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

اموزش ASP.NET MVC (Controller & Action Method)

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

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

  • Controller در MVC
  • اضافه کردن Controller در MVC
  • Action Method در MVC
  • چگونگی استفاده از Action Method در MVC

بنابراین تا پایان این آموزش با ما همراه باشید.

net mvc

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

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

اموزش ASP.NET MVC (Controller & Action Method)

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

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

  1. Controller در MVC
  2. اضافه کردن Controller در MVC
  3. Action Method در MVC
  4. چگونگی استفاده از Action Method در MVC

بنابراین تا پایان این آموزش با ما همراه باشید.

کنترل کننده در معماری MVC هر درخواست URL ورودی را پردازش می کند. Controller یک کلاس است که از System.Web.Mvc.Controller کلاس پایه گرفته شده است. کلاس کنترل شامل متدهای عمومی به نام متد Action است. کنترل کننده و متد Action آن، درخواستهای مرورگر ورودی را پردازش میکند، داده های مدل لازم را بازیابی میکند و پاسخهای مناسب را به آنها میرساند.

در ASP.NET MVC، هر نام کلاس کنترلر باید با یک کلمه "Controller" به پایان برسد. برای مثال، کنترل کننده برای صفحه اصلی باید HomeController باشد و کنترل کننده برای دانش آموز باید StudentController باشد. همچنین، هر کلاس کنترل کننده باید در پوشه Controller ساختار پوشه MVC قرار گیرد.

توجه کنید که MVC زمانی که شما "کنترل کننده" را به نام کلاس کنترل اضافه نمی کنید این خطا را می دهد: "The resource cannot be found"   " منبع را پیدا نمی کند"

Adding New Controller (افزودن کنترل کننده جدید):

اکنون، اجازه دهید یک کنترلر خالی جدید با استفاده از ویژوال استودیو 2013 برای وب و MVC 5 اضافه کنیم.

در بخش قبلی ما یاد گرفتیم که چگونه اولین برنامه MVC را ایجاد کنیم، که به نوبه خود HomeController را ایجاد کرد. در اینجا ما یک StudentController جدید ایجاد خواهیم کرد. تا پایان این آموزش با ما همراه باشید.

قبل از خواندن این قسمت حتماً برای درک ادامه مطلب، مطالب زیر را بخوانید:

1. برای شروع کار، ابتدا در ویژوال استودیو روی فایل Controller کلیک کنید، گزینه ADD و سپس Controller را انتخاب کنید.

mvc controller

2. صفحه Add Scaffold باز می شود.

  • یکی از ویژگی های جدیدی که ویژوال استودیو 2013  معرفی کرد Add New Scaffold Item dialog بود که این قابلیت در نسخه های قبلی ویژوال استودیو جایگزین Add View/Add Controllers dialog شد.

Scaffolding یک چارچوب تولید نسخۀ خودکار برای برنامه های کاربردی وب ASP.NET است. Scaffolding، زمان لازم برای توسعه یک کنترلر را در چارچوب MVC کاهش می دهد. شما می توانید یک قالب Scaffolding سفارشی را با استفاده از قالب های T4 به عنوان معماری و استاندارد برنامه نویسی خود بسازید.

در پنجره بازشده، "MVC 5 Controller - Empty" را انتخاب کرده و روی Add کلیک کنید.

controller in mvc

3. برای کنترلر جدید یک نام انتخاب کنید. به یاد داشته باشید، نام کنترل کننده باید با کنترل کننده پایان یابد.

controller name

ما نام کنترلر را StudentController میگذاریم.

studentcontroller

4. به شکل زیر و با استفاده از کدهای زیر کلاس StudentController را به پروژه اضافه کنید.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC_BasicTutorials.Controllers
{
    public class StudentController : Controller
    {
        // GET: Student
        public ActionResult Index()
        {
            return View();
        }
    }
}


همانطور که می بینید، کلاس StudentController از کلاس Controller مشتق می گیرد. هر کنترل کننده در MVC باید از این کلاس کنترل کننده استخراج شود. این کلاس کنترل پایه، شامل روش های کمکی است که می تواند برای اهداف مختلف مورد استفاده قرار گیرد.

 

 

 

5. حالا ما یک رشته ساختگی از متد  Action Index برای اجرای StudentController به پروژه اضافه می کنیم. به شکل زیر:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC_BasicTutorials.Controllers
{
    public class StudentController : Controller
    {
        // GET: Student
        public string Index()
        {
            return "This is Index action method of StudentController";
        }
    }
}




ما قبلاً در بخش Routing دیده ایم که درخواست URL http: // localhost / student یا http: // localhost / student / index با استفاده از متد Index() در کلاس StudentController، که در بالا نشان داده شده است، انجام می شود. بنابراین اجازه دهید از مرورگر آنرا فراخوانی کنیم و صفحه زیر را در مرورگر مشاهده خواهید کرد.

 

run controller in mvc

 

بنابراین برای استفاده از Controller باید به موارد زیر توجه داشته باشیم:

  • یک کنترل کننده، درخواستهای اجرا نشده را انجام می دهد. مسیریابی MVC درخواست را به کنترل کننده مناسب و متد Action بر اساس URL و مسیرهای پیکربندی ارسال می کند.
  • تمام روشهای عمومی در کلاس کنترل، متد Action نامیده می شوند.
  • کلاس کنترل باید از کلاس System.Web.Mvc.Controller استخراج شود.
  • نام کلاس کنترل کننده باید با "کنترل کننده" پایان یابد.
  • کنترل کننده جدید با استفاده از قالب های مختلف scaffolding ایجاد می شود. شما همچنین می توانید قالب scaffolding را سفارشی ایجاد کنید.

تا این قسمت ما راجع به Controllerها در MVC پرداختیم. حال بیایید ببینیم Action Method در پروژه MVC چگونه استفاده می شود.

 

Action Method در MVC

تمام متد های عمومی یک کلاس کنترل کننده به نام   Action Method می باشد. آنها مانند سایر روش های معمول با محدودیت های زیر روبرو هستند:
 
  1. Action Method باید Public باشد نه Private
  2. Action Method نمی تواند بیش از حد استفاده شود.
  3. Action Method نمی تواند یک روش استاتیک باشد.
تصویر زیر نمونه ای از متد Index Action در StudentController است.
 
action method in mvc
 
 
 
همانطور که در شکل بالا می بینید، متد Index یک روش عمومی است و ActionResult را با استفاده از متد ()View به نمایش می گذارد. متد ()View در کلاس پایه Controller تعریف شده است که ActionResult مناسب را برمی گرداند.
 

Default Action method:

هر کنترل کننده می تواند متد پیش فرض Action را به عنوان هر مسیر پیکربندی در کلاس RouteConfig داشته باشد. به طور پیش فرض، Index یک متد پیش فرض Action برای هر کنترل کننده است.




routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}/{name}",
    defaults: new { controller = "Home", 
                    action = "Index", 
                    id = UrlParameter.Optional
            });



با این حال، شما می توانید نام پیش فرض  Action را در کلاس RouteConfig تغییر دهید.

ActionResult:

چارچوب MVC شامل کلاس های  Result مختلف است که می تواند از یک متد Action بازگردد.

تصویر زیر تمام کلاس های Result موجود در ASP.NET MVC را لیست می کند.

action method

 

کلاس ActionResult یک کلاس Result (نتیجه) از تمام کلاس های بالا می باشد، بنابراین می توان نوع بازگشتی از متدهای Action را بازگرداند که هر گونه نتیجه ای که در بالا ذکر شده را نشان می دهد. با این حال، شما می توانید کلاس نتیجه مناسب را به عنوان یک نوع بازگشت از متد Action مشخص کنید.

متد index () در تصویر بالا از متد View ()  برای بازگشت ViewResult  (که از ActionResult استخراج شده است) استفاده می کند. متد View ()  در کلاس کنترل پایه تعریف شده است. همچنین شامل روش های متفاوتی است که به طور خودکار نوع خاصی از نتایج را نشان می دهد. مانند تصویر زیر:

resultaction in mvc

شما می توانید از روش های مختلف ذکر شده در جدول فوق استفاده کنید تا انواع مختلفی از نتایج را از متد Action باز گردانید.

Action method Parameters:

هر متد عملیاتی می تواند پارامترهای ورودی به عنوان متد های معمول داشته باشد.



[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 از جمع آوری درخواست داده ها بازیابی می شوند.

 

 

  • توجه داشته باشید که پارامترهای Action method می توانند نوع Nullable باشند.

بنابراین برای استفاده از Action method باید به موارد زیر توجه داشته باشیم:

  • تمام متدهای عمومی در کلاس کنترل کننده به نام Action method می باشد.
  • Action Method دارای محدودیت های زیر است:
  1. باید Public باشد نه Private
  2. نمی تواند بیش از حد استفاده شود.
  3. نمی تواند یک روش استاتیک باشد.
  • ActionResult می تواند نوع بازگشتی از متدهای Action را باز می گرداند.
  • پارامترهای Action method از نوع Nullable هستند.

به این شکل می توانید از Controller و Action method در ASP.NET MVC استفاده کنید.

منبع: tutorialsteacher

"منتشر شده در سایت ABLY"

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

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس