ASP.NET MVC模型简介
ASP.NET MVC模型是包括应用程序的业务逻辑的类。模型表示数据的形状,也被称为用于实现应用程序逻辑的对象。控制器与模型进行交互,访问执行逻辑的数据,并将数据传递给视图。
ASP.NET MVC模型概述
ASP.NET MVC是一个轻量级和高度可测试的框架,它集成了ASP.NET的功能,如基于会员的认证、主页面等。ASP.NET MVC代表了模型、视图和控制器。MVC将应用程序分离成三个部分。模型、视图和控制器。ASP.NET MVC模型代表了数据的形状;它指的是用来实现逻辑应用的对象。该类定义并描述了用于存储从数据库中获取的数据的模型和对象。模型中最重要的是它代表了数据。
ASP.NET Model是应用程序的实体,它通常包含与数据库字段、验证属性和其他逻辑相对应的属性。
如何创建ASP.NET MVC模型类?
ASP.NET MVC模型是包括应用程序的业务逻辑的类。它表示数据的形状,也被称为用于实现应用程序逻辑的对象。让我们来创建Model类,如下。
一旦创建了新的MVC项目解决方案,右键点击Model文件夹,添加一个新的类Addà Class,如下图所示。
一旦添加了新的类,给Model起一个合适的名字,然后点击添加。
要创建模型,这与数据库表相对应。
模型名称为PersonDetails.cs,数据库表的名称为PersonalDetail;让我们看看下面的数据库表,如图:
模型类看起来如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace SampleApp.Models
{
public class PersonalDetailModel
{
[Key] [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int AutoId { get; set; }
[StringLength(20, MinimumLength = 4, ErrorMessage = "It should be 4-Character Long")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Required Last-Name")]
public string LastName { get; set; }
public int Age { get; set; }
[Display(Name = "Is Active?")]
public bool Active { get; set; }
}
}
定制ASP.NET MVC模型
在自定义模型中,让我们看看如何通过MVC中的视图绑定模型,将模型的信息传递给控制器的简单方法。请看下面的动作方法,如下。
让我们看看一个简单的动作:
public ActionResult Index()
{
return View();
}
为了定制模型,我们有一个学生的模型类样本,如下所示:
public class Student_ViewModel
{
public int Student_Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
public string Department { get; set; }
public int Marks { get; set; }
}
索引视图就像Index.cshtml一样绑定了Model类,包含有提交按钮的用户界面视图,它将数据存储在数据库中:
@model CustomModelBinding.Models.Student_ViewModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
@Html.EditorForModel("Student_ViewModel")
<input type="submit" value="save" />
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
在这个表单中,我们可以在各种方法中传递数据;一旦提交按钮,我们就调用索引动作。让我们来看看在自定义模型中的各种方法,如下。
表单集合
通过使用表单集合,我们可以通过使用这个方法直接传递模型数据:
[HttpPost]
public ActionResult Index(FormCollection frm)
{
Var Student_Id = studentformcollection["Student_Id"].ToString();
var student_Name = studentformcollection["Name"].ToString();
var student_Address = studentformcollection["Address"].ToString();
var student_City = studentformcollection["City"].ToString();
var student_State = studentformcollection["State"].ToString();
var student_Country = studentformcollection["Country"].ToString();
var student_Department = studentformcollection["Department"].ToString();
var student_Marks = studentformcollection["Marks"].ToString();
return View();
}
查询字符串
查询字符串只不过是将数据传入URL;它是通过查询字符串请求数据的另一种方法,如下图所示,Request.querystring:
var student_Name = Request.QueryString["StudentName"].ToString();
直接传入参数
在这个方法中,我们直接将参数传递给方法;我们通过直接给出参数来直接传递数据:
[HttpPost]
public ActionResult Index(int Student_Id, string Name, string Address, string City, string State, string Country, string Department, int Marks)
{
return View();
}
ASP.NET MVC模型的属性
在这个属性的MVC模型中,有各种可用的属性,它们是:
- **Key -**这是用来标记该属性为主键的。
- **DatabaseGenerated -**它用于标记属性的值是由数据库生成的。
- ScaffoldColumn - 它用于设置视图是否作为一个Scaffold来查看。
例如:
[ScaffoldColumn(false)]
public int User_ID { get; set; }
- Display(Name) - 用于为属性呈现用户友好的标签。
- Column(Name) - 用于指定数据库表中的各个字段来映射这个属性。-
- **NotMapped-**用于将该属性设置为映射,例如:NotMapped(Name) - 用于指定数据库表中的各种字段来映射该属性:
[NotMapped]
public DateTime? JoinDate { get; set; }
- Table(Name) - 它用于应用类的水平,将模型映射到各种数据库表的名称。
- 外键(PropertyName) - 它指定了外键属性名称,它将主表和外键联系起来。另一个验证属性是为了在客户端的视图中验证自己;让我们看看以下应用于属性模式的ASP.NET MVC模型验证属性。
- Required用于设置强制字段。
[Required(ErrorMessage = "Required Last-Name")]·
- StringLength用于设置以字符为单位的限制。
[StringLength(20, MinimumLength = 4, ErrorMessage = "It should be 4-Character Long")]·
- DataType -用于设置数据的类型。
- Range(min, max) -用于设置最小和最大的数字----。
- Compare用来比较两个同名的属性,主要用于确认密码。例如:。
[Compare("ConfirmPassword", ErrorMessage = "must be same")]
public string Password { get; set; }
- ReqularExpression - 用来指定模式,主要用于邮件地址。
例如:E.g:
[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")]
public string Email_Address { get; set; }
- 自定义验证 - 它用于对模型属性进行自定义逻辑验证编码。
总结
在这篇文章中,我已经解释了ASP.NET MVC模型,解释了应用程序中使用的各种属性。希望这篇文章能帮助你理解。