MVC基础知识整理(二)

202 阅读1分钟

这节的知识点有:模型验证,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();
        }