
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش کار با کنترلر (Controller) در Asp.Net MVC
آموزش کار با کنترلر (Controller) در Asp.Net MVC :
در این بخش، به آموزش کار با کنترلر Controller در Asp.Net MVC پرداخته شده است.
کنترلر (Controller) در معماری MVC وظیفه مدیریت و پاسخگویی به درخواست های ورودی یا URL Request دارد. کنترلر (Controller) یک کلاس است که از کلاس اصلی System.Web.Controller مشتق شده است. هر کلاس کنترلر حاوی یک یا چند متد عمومی با نام (Action Methods) است.
کلاس کنترلر و متدهای اجرایی (Action Methods) آن، درخواست های ورودی مرورگر را مدیریت کرده و مدل داده ای (Data Model) لازم جهت هر درخواست را دریافت و سپس جواب های مناسب را تولید و به کلانیت ارسال می کند.
در معماری Asp.Net MVC نام هر کلاس کنترلر بایستی با کلمه “Controller” پایان یابد. برای مثال، کنترلر برای صفحه اصلی یا Home Page بایستی نامی مثل HomeController داشته و یا برای صفحه Student نام StudentController تعیین شود. همچنین، تمامی کلاس کنترلرها (Controller Class) باید در پوشه Controller پروژه MVC مورد نظر قرار گیرند.
نکته : اگر کلمه “Controller” را به انتهای نام کلاس یک کنترلر اضافه نکنید، در صورت فراخوانی آن، MVC پیام خطای “The resource can not be found” را بر روی صفحه نمایش خواهد داد.
آموزش اضافه کردن کنترلر جدید به پروژه MVC :
اکنون قصد داریم تا نحوه اضافه کردن یک کنترلر جدید به پروژه MVC5 خود را با استفاده از نرم افزار ویژوال استودیو 2013 آموزش دهیم.
در درس پیش یاد گرفتید چگونه یک پروژه MVC جدید را در ویژوال استودیو ایجاد کنید. به صورت پیش فرض، پروژه MVC جدید حاوی یک کنترلر به نام HomeController است، اکنون قصد داریم تا یک کنترلر جدید به نام StudentController را ایجاد کنیم.
برای اضافه کردن یک کنترلر جدید به پروژه MVC با ویژوال استودیو، همانند تصویر زیر در منوی Solution Explorer ، بر روی پوشه Controller Folder کلیک راست کرده و گزیه Add و سپس Controller را انتخاب کنید.

پس از انجام مراحل فوق، کادر Add Scaffold همانند عکس زیر باز می شود. (نرم افزار ویژوال استودیو 2013، ابزار Add New Scaffold را در اختیار برنامه نویس قرار داده است. این پنجره ها جایگزین پنجره Add View/Add Controller در ورژن های قدیمی این برنامه شده است.)
Scafollding یک چهارچوب کاری تولید کد اتوماتیک برای نرم افزارهای وب ASP.Net است. قابلیت Safollding زمان لازم جهت طراحی و توسعه یک کنترلر (Controller)، نما (View) و یا هر عنصر دیگری را در پروژه های MVC، کاهش می دهد. شما می توانید با استفاده از تمپلیت های آماده T4، تمپلیت های Scaffolding دلخواه را بر حسب نوع معماری و چهارچوب پروژه مورد نظرتان، ایجاد نمایید.

پنجره اضافه کردن یک Saffolding جدید، شامل چندین تمپلیت (template) آماده برای ایجاد یک کنترلر (Controller) می باشد. درباره انواع دیگر این تمپلیت ها در درس های بعدی بیشتر خواهیم گفت. برای این مرحله، گزینه “MVC 5 Controller-Emply” را انتخاب نموده و دکمه Add را بزنید. با این کار، پنجره Add Controller همانند تصویر زیر باز می شود :

در پنجره Add Controller، نام کنترلر مورد نظر خود را وارد نمایید. توجه داشته باشید که نام هر کنترلر بایستی با کلمه “Controller” پایان یابد. نام StudentController را در کادر وارد نموده و دکمه Add را بزنید :

انجام مراحل فوق، کلاس StudentController را در فایل StudentController.cs همراه با متد Index درون آن، ایجاد نموده و آن را در پوشه Controllers برنامه قرار می دهد :
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 Class از کلاس Controller Class مشتق شده است. تمامی کنترلرها در پروژه های MVC بایستی از این کلاس پایه به ارث بروند. کلاس پایه Controller Class حاوی متدهای کمک دهنده (Helper Methods) هستند که آن ها را می توان برای مقاصد مختلف استفاده نمود.
در مرحله بعد، کدی می نویسیم که یک متن دلخواه را از طریق متد Index Method کنترلر StudentController نمایش دهد. روش تغییر نوع متغیر برگشتی متد Index Method از نوع Action Result به نوع متنی String و نمایش متن مورد نظرمان، در کد زیر نشان داده شده است. در درس بعدی، به آموزش کامل با Action Result در پروژه های ASP.Net MVC خواهیم پرداخت :
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"; } } }
همانطور که در درس قبل، بخش آموزش سیستم مسیردهی در ASP.Net MVC یا Routing آموختید، هنگامی که یک درخواست URL مثل http://localhost/student/index یا http://localhost/student را به سرور ارسال کنیم، توسط متد ()Index کنترلر کلاس StudentController مدیریت می شود. در مرحله آخر، یکی از آدرس های فوق را در نوار مرورگر وارد نموده و هخواهید دید که پیام متن تعیین شده، در خروجی صفحه نمایش داده می شود :

نکاتی که بایستی به خاطر داشته باشید :
- یک کنترلر (Controller) درخواست های URL وارده را مدیریت می کند. سیستم مسیردهی MVC Routing هر درخواست (Request) را به کنترلر و متد اجرایی (action method) متناسب با آن بر حسب مقادیر URL و تنظیمات موجود در بخش Routes پروژه ، می فرستد.
- کلیه متدهای عمومی (Public Methods) در یک کلاس کنترلر، متدهای اجرایی یا Action Methods نامیده می شوند.
- هر کنترلر بایستی از کلاس پایه System.Web.MVC.Controller مشتق (به ارث برده) شود.
- نام هر کنترلر بایستی با کلمه “Controller” پایان یابد.
-
کنترلرهای جدید را می توان با استفاده از تمپلیت های مختلف
Scaffolding ایجاد نمود. همچنین می توانید تمپلیت های Scaffolding دلخواه خود را نیز ایجاد کنید.
در درس بعدی به آموزش متدهای اجرایی یا Action Methods خواهیم پرداخت.