سرفصلهای پست
ViewModel چیست ؟
گاهی اوقات در یک پروژهی MVC نیاز داریم که چندین Model را به یک View ارسال کنیم ، خب در این مواقع چه باید بکنیم ؟ خب راه چاره استفاده از ViewModel هست ، در معماری ام وی سی (MVC) ، ViewModel ، بسیار شبیه به Model است با این تفاوت که از ویو مدل (ViewModel) برای ارسال چندین Model به یک View استفاده میشود.
نحوه ایجاد ViewModel
به منظور درک بهتر کاربرد ویو مدل و نحوه ایجاد آن در MVC ، این مقاله آموزشی را با یک مثال پیش میبرم، فرض کنید که میخواهیم دو جدول برای درج اطلاعات درون دیتابیس ایجاد نموده سپس اطلاعاتی را از این دو جدول واکشی کرده و در یک View به کاربر نمایش دهیم .
ایجاد جدوال در دیتابیس به روش EF CodeFirst
ابتدا یک پروژه از نوع MVC ایجاد نمایید سپس یک نام دلخواه برای آن انتخاب کنید من نام پروژه خودم را ViewModelProject قرار میدهم. سپس درون پوشهی Model یک کلاس به نام دلخواه ایجاد نموده و فیلدهای جدول Student و Professor را درون آن تعریف کنید. من نام کلاس خودم را MyModel.cs قرار میدهم.
از کلاس MyModel.cs برای ساخت جدول Students و Professors در دیتابیس به روش EF CodeFirst استفاده میشود.
کلاس Student (اطلاعات دانشجویان) و Professor (اطلاعات اساتید)
}
تنظیم Web.Config
حال نوبت به تنظیم Web.Config میرسد کد زیر را بین تگ <configuration> </configuration> قرار دهید.
</connectionStrings>
در کد بالا من نام connectionString را DefaultConnection قرار دادم و در قسمت Initial Catalog نام دیتابیس خودم را ViewModelDB انتخاب کردم شما میتوانید نام connectionString و Initial Catalog را با نام دلخواه خودتان ویرایش کنید.
ایجاد کلاس Context
حال در پوشه Model یک کلاس به نام دلخواه با پسوند Context ایجاد نموده و کدهای زیر را درون آن بنویسید. من نام کلاس خودم را ViewModelProjectContext.cs قرار داده ام.
فعال کردن Migration
حالا از منوی بالای ویژوال استدیو گزینه Tools سپس Nuget Package Manager و پس از آن Package Manager Console را انتخاب کنید حال در محیط Package Manager Console دستور زیر را وارد کنید وسپس دکمه Enter را فشار دهید.
Enable-Migrations -ContextTypeName ViewModelProject.Models.ViewModelProjectContext
آپدیت کردن دیتابیس و ایجاد دیتابیس
حالا نوبت به آپدیت کردن دیتابیس میرسد برای این منظور دوباره در محیط Package Manager Console دستور زیر را وارد کرده و سپس دکمه Enter رافشار دهید .
update-database
حالا دیتابیس SQL Server را باز کنید همانطور که مشاهده میکنید در دیتابیس ViewModelDB دو جدول Students و Professors برای شما ایجاد شده است.
تعریف کلاس برای ViewModel
توصیه میشود در پوشه Model یک پوشه به نام ViewModel ایجاد نموده و سپس درون آن یک کلاس برای ViewModel بسازید من نام کلاس ViewModel را CollegeViewModel.cs قرار میدهم .
ایجاد سازنده برای کلاس ViewModel
حال برای ViewModel خود یک سازنده ایجاد نموده و لیستی از مدل های Student و Professor را به عنوان پارامتر های ورودی به این سازنده پاس دهید به صورت زیر :
}
ایجاد Controller و ActionMethod
حال بر روی پوشه Controller راست کلیک کرده و یک Controller خالی به پروژه خود اضافه نمایید من اسم Controller خودم را College قرار میدهم. سپس درون کنترلر ایجاد شده یک ActionMethod ایجاد نمایید من نام این اکشن متد را Index قرار میدهم .
}
واکشی اطلاعات از جداول Student و Professor با LINQ و مقدارهی ViewModel
حال درون ActionMethod با دستور LINQ تمام رکوردهای جدول Student و Professor را گرفته و سپس به عنوان پارامتر ورودی سازندهی CollegeViewModel قرار دهید و در انتها این ویو مدل را به ویوی اکشن متد Index ارسال کنید.
}
نمایش اطلاعات ارسال شده با ViewModel در View
حال یک ویو برای اکشن متد Index بسازید و کدهای زیر درون ویوی Index کپی کنید در کد زیر با دستور foreach اطلاعات مدل Student و مدل Professor ، از دیتابیس واکشی شده و در دوجدول نمایش داده شده است.
حالا فقط کافیه پروژه خود را اجرا نمایید .
خب به پایان این مقاله آموزشی از سایت میزفا رسیدیم اگر سوالی در رابطه با این مقاله و سایر مقالات آموزشی ASP.NET MVC داشتید حتما در قسمت نظرات این پست مطرح کنید.
منبع : میزفا
/
5
(
8
امتیاز
)