ASP.NET(十四)

您所在的位置:网站首页 web表单验证文字怎么加 ASP.NET(十四)

ASP.NET(十四)

2024-07-12 22:53| 来源: 网络整理| 查看: 265

MVC中的验证功能 MVC中的验证功能ASP.NET MVC验证特性ModelState对象在视图中显示验证信息 视图助手HTMLHelperHtmlHelper的优势常见输出表单方法例子:文本框验证案例:验证码的案例: 邮箱验证码生成

MVC中的验证功能

验证功能从最开始学习编程,C#中Winform/WPF/Webform都有对文本框等控件的验证,之后学习(C#/JS)正则,HTML中也有表单验证。前端页面的数据验证是为了给服务器减压,在ASP.NET MVC中也提供了一套验证机制

验证步骤:1.定义验证规则–>2.应用验证规则–>3.显示验证结果

使用特性定义验证规则

ASP.NET MVC验证特性

支持对模型应用验证规则

位于System.ComponentModel.DataAnnotations命名空间中

都继承自VaildationAtrribute类,该类的一个基本属性ErrorMessage用来定义消息属性

验证特性功能Requried必填项Compare比较验证:验证两个值是否一致StringLength字符串长度验证(可以设置最大长度、最小长度)Range用于数字(整数、浮点)、时间等类型数据范围验证RegularExpression正则表达式验证 ModelState对象

表单与模型验证的关系

在模型类中定义验证规则后,ASP.NET MVC在将数据映射到模型时,会自动应用模型类上的验证规则

验证过程中,会自动把验证错误信息添加到ModelState数据字典中

表单数据的容器验证结果的容器

ModelState常用成员

成员功能IsValid判断模型上所有的验证是否通过AddModelError(Key.Value)添加自定义的错误信息 在视图中显示验证信息 理论上可以使用ModelState对象来输出验证信息,但是比较繁琐实际中,使用Html对象的两个帮助方法来输出验证信息 视图助手HTMLHelper

HTMLHelper-辅助视图生成表单元素的工具类

页面元素:连接、验证、Form元素、其他

HtmlHelper的优势 避免输错表单元素,提高开发效率保持表单数据的状态(更简单的表单元素保持方法)支持验证 常见输出表单方法 方法对应的HTMLBeginForm(string actName,string conName )< form/>Hidden(string name)< input type=“Hidden”>Password(string name)< input type=“Password”>RadioButton(string name,object value)< input type=“radio”>CheckBox(string name)< input type=“checkbox”>TextBox(string name)< input type=“text”>TextArea(string name)< textarea>DropDownList(string name)< select>ListBox(string name)< select multiple=“true”>ActionLink(string linktext,sttring action)< a/>ValidationMessage(string modelName)输出表单验证信息ValidationSummary()输出验证汇总信息Partial(string partialViewName)输出分部视图(用户控件)内容 例子: 文本框验证案例:

model:

[Serializable()] public class StudentsModel { [Required(ErrorMessage ="{0}不能为空")] [DisplayName("ID")] public int StudentId { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("姓名")] public string StudentName { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("性别")] public string Gender { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("生日")] public string Birthday { get; set; } [Required(ErrorMessage = "{0}不能为空")] [Range(18,18,ErrorMessage ="{0}必须在{1}和{2}之间")] [DisplayName("身份证号码")] public string StudentIdNo { get; set; } [Required(ErrorMessage = "{0}不能为空")] [Range(5, 5, ErrorMessage = "{0}必须在{1}和{2}之间")] [DisplayName("打卡号")] public string CardNo { get; set; } public string StuImage { get; set; } [Required(ErrorMessage = "{0}不能为空")] [Range(18,100, ErrorMessage = "{0}必须在{1}和{2}之间")] [DisplayName("年龄")] public int Age { get; set; } [Required(ErrorMessage = "{0}不能为空")] [RegularExpression(@"^1\d{10}$",ErrorMessage ="请输入正确的手机号")] [DisplayName("年龄")] public string PhoneNumber { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("家庭地址")] public string StudentAddress { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("班级ID")] public int ClassId { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("班级")] public string ClassName { get; set; } [Required(ErrorMessage = "{0}不能为空")] [DisplayName("验证码")] public string ValidateCode { get; set; }

View:

学生姓名: @Html.ValidationMessage("StudentName") 学生性别: @Html.ValidationMessage("Gender") 学生年龄: @Html.ValidationMessage("Age") 学生地址: @Html.ValidationMessage("StudentAddress") 学生电话: @Html.ValidationMessage("PhoneNumber") 出生日期: @Html.ValidationMessage("Birthday") 身份证号: @Html.ValidationMessage("StudentIdNo") 学生卡号: @Html.ValidationMessage("CardNo") 学生班级: @Html.ValidationMessage("ClassId") 验证码: @Html.ValidationMessage("ValidateCode") @Html.ValidationSummary() 验证码的案例:

Models

using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Web; namespace MVCStudent.Models { public class CreateValidateCode { private string CreateRandomCode(int codeCount) { string code = ""; Random r = new Random(); //偶数给数字,奇数给小写字母 for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3