MVC基礎知識整理(二)

這節的知識點有:模型驗證,HTML輔助方法,Model模型轉換

1、模型驗證

用戶驗證分爲客戶端和服務端驗證,書寫校驗代碼是一個繁瑣的過程。在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="格式不正確")] 正則判斷

2、HTML輔助方法

如何將咱們在視圖模型寫的驗證渲染到界面上呢?bash

一、引用業務模型

@model UI.Models.ViewModel
複製代碼

二、使用Html.BeginForm()表單方法

@using(Html.BeginForm("方法","控制器",FormMethod.Get/Post))
{
    
}
複製代碼

三、使用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","男")

3、模型轉換

一、業務模型轉數據模型

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();
        }
複製代碼

二、數據模型轉業務模型

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();
        }
複製代碼
相關文章
相關標籤/搜索