سایر مقالات سری آموزش 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 را انتخاب کنید.
در پنجره Add Scaffold، گزینه MVC 5 Controller with view, using Entity Framework را انتخاب کنید و سپس بر روی Add کلیک کنید.
برای کنترلر نام MoviesController را انتخاب کنید.
برای کلاس مدل ،Movie (MvcMovie.Models) را انتخاب کنید.
برای کلاس داده، MovieDBContext (MvcMovie.Models) را انتخاب کنید.
بر روی 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 ، یکی است. نتیجه این درخواست لیست خالی از فیلمها است، زیرا هنوز چیزی اضافه نکردهاید.
ساخت Movie ( آموزش ASP MVC )
بر روی لینک Create New کلیک کنید، یک سری جزئیات را به فیلم اضافه کنید و سپس گزینه Create را انتخاب کنید.
گزینه Create سبب میشود تا فرم به سمت سرور ارسال شود و اطلاعات وارد شده در پایگاه داده ذخیره شود. و بعد درمرورگر میبینید که به لیست فیلمها اضافه شده است و URL در مرورگر، /Movies است.
چند ورودی دیگر برای فیلمها بسازید و با گزینههای Edit ، Details و Delete تغییراتی در آنها ایجاد کنید.
آزمایش و بررسی کد ساخته شده
فایل Controller\MoviesController.cs را باز کنید و کد تولید شده در متد Index را بررسی کنید. بخشی از کنترلر movie و متد Index در زیر نمایش داده شده است.
یک درخواست به کنترلر Movies باعث برگشت تمام ورودیهای جدول Movies و ارسال نتایج به Index view میشود.خط زیر از کلاسMoviesController، همانطور که پیشتر توضیح داده شد، یک پایگاه داده از فیلم میسازد. شما میتوانید دادههای مختلف در پایگاه داده را استخراج ، ویرایش و یا حذف کنید.
مدلهایی که باید حتما نوع آنها مشخص باشد(Strongly Typed) و کلمه کلیدی @model
قبلتر در این سری آموزشی دیدید که چگونه کنترلر با استفاده از شی ViewBag ، داده ها و اشیا را به قالب view میفرستد. ViewBag یک شی داینامیک است که امکان ارسال اطلاعات را فراهم میکند.
MVC همچنین قابلیت ارسال اشیا وابسته به نوع را فراهم میکند. قابلیت وابستگی به نوع(strongly typed) باعث بهتر کامپایل شدن کد را دارد. مکانیزم scaffolding در visual studio در کلاس MoviesController و قالب view هنگام ساخت متدها و viewها از این راهکار استفاده میکند.
در فایل Controllers\MoviesController.cs ، متد Details را بررسی کنید. در زیر نمایش داده شده است.
پارامتر 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 ارسال میشود.
محتوای فایل View\Movies\Details.cshtml را بررسی کنید:
با اضافه کردن جمله model@ در بالای فایل قالب view ، میتوانید نوع شیی را که موردنظر view است مشخص کنید. وقتی که شما کنترلر مربوط به movie را میسازید ، visual studio به طور خودکار خط کد زیر را به بالای فایل Details.cshtml اضافه میکند.
model@ به شما اجازه میدهد تا به فیلمی که کنترلر به view با استفاده از شی Model ارسال کرده است، دسترسی داشته باشید. به عنوان مثال در قالب Details.cshtml، کد نوشته شده باعث میشود هر یک از فیلدهای فیلم به DisplayNameFor و DisplayFor ارسال شود. متدهای Edit و Create و قالب view نیز شی ای از مدل را ارسال میکنند.
قالب Index.cshtml و متد Index در MovieController.cs را بررسی کنید. دقت کنید که کد چگونه شی ای از List را هنگام فراخوانی View در متد Index میسازد. سپس لیست Movies را از متد Index به سمت view ارسال میکند.
زمانی که کنترلر فیلم(movie) را میسازید، visual studio به صورت خودکار عبارت model@ زیر را به بالای فایل Index.cshtml اضافه میکند.
در مثال زیر توجه کنید در فایل Index.cshtml کد نوشته شده با استفاده از عبارت foreach بر روی شی Model در حلقه دور میزند.
چون شی مدل حساس به نوع است(strongly typed) ، هر شی item در داخل حلقه دارای نوع Movie هستند. یکی از مزایای این کار اینست که در زمان کامپایل نیز درستی کد چک میشود.
کار با 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) در نظر میگیرد.
بر روی جدول Movies کلیک راست کنید و Show Table Data را انتخاب کنید تا داده هایی را که ساختهاید مشاهده کنید.
بر روی جدول Movies کلیک راست کنید و Open Table Definition را انتخاب کنید تا ساختار جدولی که Entity Framework ساخته است را مشاهده کنید.
آموزش ASP MVC
دقت کنید که چگونه طرح و شمای جدول Movies با کلاس Movies که قبلا ساختهاید مقارن هستند. Entity Framework این جدول را بر مبنای کلاس Movies ساخته است.
وقتی که کارتان تمام شد ارتباط را با راست کلیک بر روی MovieDBContext و انتخاب Close Connection قطع کنید.(اگر ارتباط را قطع نکنید ممکن است در دفعههای بعد که میخواهید پروژه را اجرا کنید با خطا مواجه شوید).
حال شما یک پایگاه داده و صفحاتی دارید که قادر به آپدیت، ویرایش و حذف آنها هستید. سوالات خود را در ارتباط با آموزش ASP MVC می توانید در پایین صفحه مطرح کنید .
سلام سورس کد جستجو تاریخ رو دارین؟