这节的知识点有:模型验证,HTML辅助方法,Model模型转换
一、模型验证
用户验证分为客户端和服务端验证,书写校验代码是一个繁琐的过程。在Asp.Net MVC中就很好的解决了这一问题、利用模型的 数据注解 实现客户端与服务端双重校验,使你的开发效率大大提高。
- 引用命名控件
using System.ComponentModel.DataAnnotations;
using System.ComponentModel
- [Display(Name="姓名")] 为属性设置显示名称
- [Required(ErrorMessage="必填项不能为空!")] 必填验证
- [StringLength(15,MinimumLength = 5 , ErrorMessage="最大值{0}最小值{1}")] 字符串长度验证
- [EmailAddress(ErrorMseeage ="邮箱格式不正确!")] 邮箱验证
- [Range(1,150)] 数字范围验证
- [RegularExpression("正则表达式",ErrorMessage="格式不正确")] 正则判断
二、HTML辅助方法
如何将我们在视图模型写的验证渲染到界面上呢?
1、引用业务模型
@model UI.Models.ViewModel
2、使用Html.BeginForm()表单方法
@using(Html.BeginForm("方法","控制器",FormMethod.Get/Post))
{
}
3、使用Html辅助方法
- 显示控件的名称 @Html.Label("Name")等同于@Html.LabelFor(m => m.Name)
- 文本框 @Html.TextBox("Name")等同于@Html.TextBoxFor(m => m.Name)
- 密码框 @Html.Password("Pwd")等同于@Html.PasswordFor(m => m.Pwd)
- 单选框 @Html.RadioButton("Sex","男")
三、模型转换
1、业务模型转数据模型
public ActionResult Index(UsersViewModel model)//视图提交过来的业务模型
{
UsersDataModel dModel = new UsersDataModel();//业务模型转数据模型
dModel.Id = Guid.NewGuid();
dModel.Name = model.Name;
dModel.Email = model.Email;
dModel.Age = model.Age;
dModel.PhoneNumber = model.PhoneNumber;
dModel.CreateTime =model.CreateTime;
dModel.Pwd = model.Pwd;
dModel.Sex = model.Sex == "男" ? true : false;
int res = bll.UsersAdd(dModel);
ViewBag.res = res;
return View();
}
2、数据模型转业务模型
private List<UsersViewModel> Select2()
{
List<UsersDataModel> lis = bll.UsersShow();
var list = from item in lis
select new UsersViewModel()//数据模型转业务模型
{
Id = item.Id,
Name = item.Name,
Email = item.Email,
Age = item.Age,
PhoneNumber = item.PhoneNumber,
Pwd = item.Pwd,
CreateTime = item.CreateTime,
Sex = item.Sex ? "男" : "女"
};
return list.ToList();
}