معرفی
این مقاله اتصال مدل در ASP.NET MVC را توضیح می دهد. ما در مورد نگاشت دادههای درخواستی ASP.NET به عملکرد کنترلر انواع پارامترهای ساده به پارامترهای پیچیده با استفاده از Model Binding در ASP.NET MVC بحث خواهیم کرد.
روش های مختلفی برای اتصال مدل در ASP.NET MVC وجود دارد.
- مجموعه فرم
- اتصال مدل پارامتر
- الزام آور مدل موجودیت
ASP.NET MVC Model Binding
ASP.NET MVC Model Binding به ما امکان می دهد داده های درخواست HTTP را با یک مدل نگاشت کنیم. این فرآیند ایجاد اشیاء دات نت با استفاده از داده های ارسال شده توسط مرورگر در یک درخواست HTTP است. توسعه دهندگان ASP.NET Web Forms که تازه با ASP.NET MVC آشنا شده اند، عمدتاً در مورد نحوه تبدیل مقادیر از View به کلاس Model با رسیدن به متد Action کلاس Controller سردرگم هستند، بنابراین این تبدیل توسط Model Binder انجام می شود. .
Model binding یک پل به خوبی طراحی شده بین درخواست HTTP و روش های عمل C# است. این کار را برای توسعه دهندگان آسان می کند تا با داده ها روی فرم ها (نماها) کار کنند زیرا POST و GET به طور خودکار به مدل داده ای که ما مشخص می کنیم منتقل می شود. ASP.NET MVC از کلاسورهای پیش فرض برای تکمیل این کار در پشت صحنه استفاده می کند.
مرحله 1
Visual Studio 2015 یا نسخه دلخواه خود را باز کنید و یک پروژه جدید ایجاد کنید.
گام 2
پروژه «برنامه وب» را انتخاب کنید و نام مناسبی برای پروژه خود بگذارید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different Way Of Model Binding In ASP.NET MVC.png)
مرحله 3
الگوی "خالی" را انتخاب کنید، کادر MVC را در زیر علامت بزنید و OK را کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different Way Of Model Binding In ASP.NET MVC02.png)
مرحله 4
روی پوشه Models کلیک راست کرده و یک مدل پایگاه داده اضافه کنید. اکنون Entity Framework را اضافه کنید. برای این کار، روی پوشه Models کلیک راست کرده، Add را انتخاب کنید، سپس New Item را انتخاب کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC03.png)
شما یک پنجره دریافت خواهید کرد. از آنجا، Data را از پنل سمت چپ انتخاب کنید و ADO.NET Entity Data Model را انتخاب کنید، نام EmployeeModel را به آن بدهید (این نام اجباری نیست، می توانید هر نامی بدهید) و روی "Add" کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC04.png)
پس از کلیک بر روی "افزودن پنجره"، ویزارد باز می شود. EF Designer را از پایگاه داده انتخاب کنید و روی "بعدی" کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC05.png)
پس از کلیک بر روی "Next" پنجره ای ظاهر می شود. اتصال جدید را انتخاب کنید. پنجره دیگری ظاهر می شود. نام سرور خود را اضافه کنید - اگر محلی است، یک نقطه (.) وارد کنید. پایگاه داده خود را انتخاب کنید و روی "OK" کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC06.png)
اتصال اضافه خواهد شد. در صورت تمایل، نام اتصال را همانطور که می خواهید ذخیره کنید. می توانید نام اتصال خود را در زیر تغییر دهید. این اتصال را در پیکربندی وب ذخیره می کند. اکنون، روی "بعدی" کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC07.png)
پس از کلیک بر روی NEXT، پنجره دیگری ظاهر می شود. نام جدول پایگاه داده را همانطور که در تصویر زیر نشان داده شده است انتخاب کنید و روی "پایان" کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC08.png)
Entity Framework اضافه می شود و کلاس مربوطه در پوشه Models ایجاد می شود.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC09.png)
مرحله 5
روی پوشه Controllers راست کلیک کرده و یک کنترلر اضافه کنید.
کلاس کارمند
- namespace MvcModelBinding_Demo.Models
- {
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- public partial class Employee
- {
- public int Id { get; set; }
- [Required(ErrorMessage ="Please enter name")]
- public string Name { get; set; }
- [Required(ErrorMessage = "Choose your gender")]
- public string Gender { get; set; }
- [Required(ErrorMessage = "Please enter phone number")]
- [Display(Name ="Phone Number")]
- [Phone]
- public string PhoneNumber { get; set; }
- [Required(ErrorMessage = "Please enter email address")]
- [Display(Name ="Email Address")]
- [EmailAddress]
- public string EmailAddress { get; set; }
- [Required(ErrorMessage = "Please enter position")]
- public string Position { get; set; }
- [Required(ErrorMessage = "Please enter hire date")]
- [Display(Name ="Hire Date")]
- public Nullable<System.DateTime> HireDate { get; set; }
- [Required(ErrorMessage = "Please enter salary")]
- public Nullable<int> Salary { get; set; }
- [Required(ErrorMessage = "Please enter Website URL")]
- [Display(Name ="Website URL")]
- public string EmployeeWebSite { get; set; }
- }
- }
یک پنجره ظاهر می شود. MVC5 Controller-Empty را انتخاب کنید و روی «افزودن» کلیک کنید.
![روش های مختلف اتصال مدل در ASP.NET MVC](http://pezhvak24.ir/dl/10kcor/cscd/article/different-way-of-model-binding-in-asp-net-mvc/Images/Different%20Way%20Of%20Model%20Binding%20In%20ASP.NET%20MVC11.png)