دسترسی به داده مدل از طریق کنترلر ( آموزش ASP MVC )

سایر مقالات سری آموزش  ASP MVC  :

آموزش شروع کار با ASP.NET MVC 5

اضافه کردن کنترلر (آموزش ASP.NET MVC)

اضافه کردن View (آموزش ASP.NET MVC)

اضافه کردن Model (آموزش ASP.NET MVC)

ساخت Connection String و کار با SQL Server (آموزش ASP.NET MVC)

در این قسمت آموزش  ASP MVC شما کلاس جدیدی به نام MovieController می‌سازید و کدی می‌نویسید که داده فیلم را دریافت کند و آن را با استفاده از قالب view در مرورگر نمایش دهد.

ابتدا قابل از رفتن به مرحله بعد برنامه را build کنید. اگر برنامه را build نکنید خطایی در مورد اضافه کردن کنترلر می‌دهد.

در Solution Explorer  بر روی پوشه Controller کلیک راست کنید، سپس گزینه Add و Controller را انتخاب کنید.

آموزش asp mvc

در پنجره Add Scaffold، گزینه MVC 5 Controller with view, using Entity Framework را انتخاب کنید و سپس بر روی Add کلیک کنید.

کلاس asp.net

برای کنترلر نام MoviesController را انتخاب کنید.
برای کلاس مدل ،Movie (MvcMovie.Models) را انتخاب کنید.
برای کلاس داده، MovieDBContext (MvcMovie.Models) را انتخاب کنید.

آموزش تصویری asp

بر روی Add کلیک کنید(اگر با خطا مواجه شدید احتمالا به این دلیل است که قبل از اضافه کردن کنترلر، برنامه را build نکرده‌اید). Visual Studio فایل‌ها و پوشه‌های زیر را می‌سازد:
• فایل MoviesController.cs در پوشه Controller
• پوشه Views\Movies
• فایل‌های Create.cshtml ، Delete.cshtml ، Details.cshtml ، Edit.cshtml و Index.cshtml در پوشه Views\Movies

Visual studio به طور خودکار متدهای CRUD (Create, Read, Update, Delete) و متدهای view را می‌سازد. (به عملیات ساخت این متدهای در اصطلاح scaffolding می‌گویند). حال شما نمونه کاملی از یک برنامه تحت وب را در اختیار دارید و با آن می‌توانید ورودی‌های فیلم را بسازید، لیست کنید، ویرایش و حذف کنید.
برنامه را اجرا کنید و بر روی MVC Movie کلیک کنید.(یا در قسمت آدرس URL در مرورگر، /Movies را اضافه کنید). از آنجایی که روتینگ یا مسیریابی برنامه به صورت پیش‌فرض (در فایل App_Start\RouteConfig.cshtml) تعیین شده است، درخواست مرورگر (http://localhost:xxxx/Movies) مستقیما به متد Index در کنترلر Movies ارسال می‌شود. به عبارت دیگر درخواست http://localhost:xxxx/Movies با درخواست http://localhost:xxxx/Movies/Index ، یکی است. نتیجه این درخواست لیست خالی از فیلم‌ها است، زیرا هنوز چیزی اضافه نکرده‌اید.

اموزش asp , سی شارپ

ساخت Movie ( آموزش ASP MVC )

بر روی لینک Create New کلیک کنید، یک سری جزئیات را به فیلم اضافه کنید و سپس گزینه Create را انتخاب کنید.

پروژه asp mvc

گزینه Create سبب می‌شود تا فرم به سمت سرور ارسال شود و اطلاعات وارد شده در پایگاه داده ذخیره شود. و بعد درمرورگر می‌بینید که به لیست فیلم‌ها اضافه شده است و URL در مرورگر، /Movies است.

یادگیری asp mvc

چند ورودی دیگر برای فیلم‌ها بسازید و با گزینه‌های Edit ، Details و  Delete تغییراتی در آنها ایجاد کنید.

آزمایش و بررسی کد ساخته شده

فایل Controller\MoviesController.cs را باز کنید و کد تولید شده در متد Index را بررسی کنید. بخشی از کنترلر movie و متد Index  در زیر نمایش داده شده است.

کلاس asp.net mvc مشهد

یک درخواست به کنترلر Movies باعث برگشت تمام ورودی‌های جدول Movies و ارسال نتایج به Index view می‌شود.خط زیر از کلاسMoviesController، همانطور که پیش‌تر توضیح داده شد، یک پایگاه داده از فیلم می‌سازد. شما می‌توانید داده‌های مختلف در پایگاه داده را استخراج ، ویرایش و یا حذف کنید.

کلاس asp

 

مدل‌هایی که باید حتما نوع آنها مشخص باشد(Strongly Typed) و کلمه کلیدی @model
قبل‌تر در این سری آموزشی دیدید که چگونه کنترلر با استفاده از شی ViewBag ، داده ها و اشیا را به قالب view می‌فرستد. ViewBag یک شی داینامیک است که امکان ارسال اطلاعات را فراهم می‌کند.
MVC همچنین قابلیت ارسال اشیا وابسته به نوع را فراهم می‌کند. قابلیت وابستگی به نوع(strongly typed) باعث بهتر کامپایل شدن کد را دارد. مکانیزم scaffolding در visual studio در کلاس MoviesController و قالب view هنگام ساخت متدها و viewها از این راهکار استفاده می‌کند.
در فایل Controllers\MoviesController.cs ، متد Details را بررسی کنید. در زیر نمایش داده شده است.

دوره asp.net

پارامتر id به عنوان route data در نظرگرفته می‌شود، به عنوان مثال درخواست http://localhost:1234/movies/details/1 ، کنترلر را به کنترلر مربوط به movies، متداجرایی را details  و id  را به یک set می‌کند. همچنین می‌توانید id را به صورت query string طبق فرمان زیر ارسال کنید.

http://localhost:1234/movies/details?id=1

نمونه‌(instance) ای از مدل Movie به Details ارسال می‌شود.

کلاس طراحی سایت با asp mvc

محتوای فایل View\Movies\Details.cshtml را بررسی کنید:

مشهد طراحی سایت

با اضافه کردن جمله model@ در بالای فایل قالب view ، می‌توانید نوع شیی را که موردنظر view است مشخص کنید. وقتی که شما کنترلر مربوط به movie را می‌سازید ، visual studio به طور خودکار خط کد زیر را به بالای فایل Details.cshtml اضافه می‌کند.

آموزش razer در asp mvc

model@ به شما اجازه می‌دهد تا به فیلمی که کنترلر به view با استفاده از شی Model  ارسال کرده است، دسترسی داشته باشید. به عنوان مثال در قالب Details.cshtml، کد نوشته شده باعث می‌شود هر یک از فیلدهای فیلم به DisplayNameFor و DisplayFor ارسال شود. متدهای Edit و Create و قالب view نیز شی ای از مدل را ارسال می‌کنند.

قالب Index.cshtml و متد Index در MovieController.cs را بررسی کنید. دقت کنید که کد چگونه شی ای از List را هنگام فراخوانی View در متد Index می‌سازد. سپس لیست  Movies را از متد Index به سمت view ارسال می‌کند.

کد نویسی در asp

 

 

 

زمانی که کنترلر فیلم(movie) را می‌سازید، visual studio به صورت خودکار عبارت model@ زیر را به بالای فایل Index.cshtml اضافه می‌کند.

ویو در ای اس پی

 

 

در مثال زیر توجه کنید در فایل Index.cshtml کد نوشته شده با استفاده از عبارت foreach بر روی شی Model  در حلقه دور می‌زند.

برنامه نویسی ای اس پی

چون شی مدل حساس به نوع است(strongly typed) ، هر شی item در داخل حلقه دارای نوع Movie هستند. یکی از مزایای این کار اینست که در زمان کامپایل نیز درستی کد چک می‌شود.

بهترین کلاس asp mvc

کار با SQL Server و LocalDB – آموزش ASP MVC

Entity Framework از نوع Code First متوجه می‌شود که connection string مربوط به پایگاه داده‌ای که به پایگاه داده Movies اشاره می‌کند هنوز ساخته نشده است، بنابراین این پایگاه داده در روش Code First به طور خودکار ساخته می‌شود. می‌توانید از ساخت آن با مراجعه به پوشه App_Data  مطمئن شوید. اگر فایل Movies.mdf  وجود نداشت، بر روی دکمه Show All Files در Solution Explorer کلیک کرده، بر روی Refresh  کلیک کنید تا پوشه App_Data باز شود.

نمایش فایل ها در ویژوال استدیو

بر روی Movies.mdf دابل کلیک کنید تا SERVER EXPLORER باز شود، سپس پوشه Tables را گسترش دهید تا جدول‌های Movie را ببینید. به طور پیش‌فرض Entity Framework مشخصه ID را به عنوان کلید اصلی(primary key) در نظر می‌گیرد.

آزمون asp

بر روی جدول Movies کلیک راست کنید و Show Table Data را انتخاب کنید تا داده هایی را که ساخته‌اید مشاهده کنید.

سی شارپ

asp دیتابیس

بر روی جدول Movies کلیک راست کنید و Open Table Definition را انتخاب کنید تا ساختار جدولی که Entity Framework ساخته است را مشاهده کنید.

visualstidiodatabase

 

 

asp جدول دیتابیس

آموزش ASP MVC

دقت کنید که چگونه طرح و شمای جدول Movies با کلاس Movies که قبلا ساخته‌اید مقارن هستند. Entity Framework این جدول را بر مبنای کلاس Movies ساخته است.
وقتی که کارتان تمام شد ارتباط را با راست کلیک بر روی MovieDBContext و انتخاب Close Connection قطع کنید.(اگر ارتباط را قطع نکنید ممکن است در دفعه‌های بعد که می‌خواهید پروژه را اجرا کنید با خطا مواجه شوید).

قطع ارتباط با دیتابیس

حال شما یک پایگاه داده و صفحاتی دارید که قادر به آپدیت، ویرایش و حذف آنها هستید. سوالات خود را در ارتباط با آموزش ASP MVC می توانید در پایین صفحه مطرح کنید .

ورکشاپ رایگان دوره های تخصصی برنامه نویسی

شما این فرصت را دارید، با تکمیل فرم زیر، قبل از انتخاب دوره آموزشی مناسب خود، در ورکشاپ رایگان دوره های تخصصی برنامه نویسی شرکت کنید
  • این فیلد برای اعتبار سنجی است و باید بدون تغییر باقی بماند .

درباره‌ی محمد بروشکی

همچنین ببینید

ساخت اپلیکیشن سمت کاربر با فرمت Javascript

در این بخش از آموزش Web API با استفاده از HTML، Javascript و  Knockout.js   اپلیکیشنی …

یک نظر

  1. سلام سورس کد جستجو تاریخ رو دارین؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *