1个示例 学会 mvc 常用标签
HtmlHelper用法大全3:Html.LabelFor、Html.EditorFor、Html.RadioButtonFor、Html.CheckBoxFor
示例效果:

一、设置通用的验证方法
Models层
- public class MyStringIsChineseAttribute: ValidationAttribute
- {
- #region 验证中文
- private bool _myreturn = false;
- public bool myNullDefVal
- {
- get { return _myreturn; }
- set { _myreturn = value; }
- }
- //覆盖父类方法(确定对象的指定值是否有效)
- public override bool IsValid(object value)
- {
- if (value == null) return _myreturn;
- return Regex.IsMatch(value.ToString(), @"^[\u4e00-\u9fa5]{0,}$", RegexOptions.IgnoreCase);
- }
- //覆盖父类方法(基于发生错误的数据字段对错误消息应用格式设置)
- public override string FormatErrorMessage(string name)
- {
- return "非中文字符!";
- }
- #endregion
- }
Controller层
- public class MyValidDataController : Controller
- {
- /// <summary>
- /// 姓名验证,只能是中文
- /// </summary>
- /// <param name="ExamineeName">姓名</param>
- /// <returns></returns>
- public JsonResult ExamineeNameCheck(string XM)
- {
- MyStringIsChineseAttribute ff = new MyStringIsChineseAttribute();
- bool myidexist = ff.IsValid(XM);
- if (!myidexist)
- {
- return Json("姓名只能是中文!", JsonRequestBehavior.AllowGet);
- }
- else
- {
- return Json(true, JsonRequestBehavior.AllowGet);
- }
- }
- }
二、Person类(Models层)
- public class Person
- {
- #region 属性定义
- [Display(Name = "姓名")]
- [Required(ErrorMessage="{0}不能为空.")]
- [StringLength(4, MinimumLength = 2, ErrorMessage = " {0} 最少 {2} 字符,最多{1}字符。")]
- [Remote("ExamineeNameCheck", "MyValidData")]//服务端参与的验证(注意:ExamineeNameCheck方法的参数名必须叫XM)
- //[RegularExpression(@"^[\u4e00-\u9fa5]{0,}$",ErrorMessage = "只能输入汉字")]//正则表达式
- public string XM{ get; set; }
- [Display(Name = "性别")]
- public bool XB { get; set; }
- [Display(Name = "爱好1")]
- public bool AH1 { get; set; }
- [Display(Name = "爱好2")]
- public bool AH2 { get; set; }
- [Display(Name = "学历")]
- public string XL { get; set; }
- [Display(Name = "备注")]
- public string BZ { get; set; }
- #endregion
- }
三、Controller层
- public class TestController : Controller
- {
- public ActionResult Index()
- {
- Person person = new Person();
- person.XM = "小张";
- person.XB = false;
- person.AH2 = true;
- List<SelectListItem> lists = new List<SelectListItem>
- {
- new SelectListItem{Text="大学",Value="大学"},
- new SelectListItem{Text="高中",Value="高中"},
- new SelectListItem{Text="初中",Value="初中"}
- };
- ViewData["XlList"] = lists;
- person.XL = "高中";
- person.BZ = "备注";
- return View(person);
- }
- [HttpPost]
- public ActionResult Index(Person person,FormCollection fc)
- {
- //注意防止页面反复提交
- string str = "";
- if (ModelState.IsValid)//模型状态字典实例有效
- {
- //一、验收数据的合法性
- //1、AJAX实现客户端数据验证(在数据被送到后台前,我们应该先进行一遍验证,这样可以节约很多资源)
- //2、同步方式完成数据验证
- if (String.IsNullOrEmpty(person.XM))
- {
- ViewData.ModelState.AddModelError("XM", "姓名不能为空!");
- return Index();//返回Index方法
- }
- str += "姓名:" + person.XM + "<br>";
- str += "性别:" + person.XB + "<br>";
- str += "爱好1:" + person.AH1 + "<br>";
- str += "爱好2:" + person.AH2 + "<br>";
- str += "学历:" + person.XL + "<br>";
- str += "备注:" + person.BZ + "<br>";
- }
- return Content(str);
- }
- }
四、Views层
- @model MvcApplication4.Models.Person
- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- <h2>编辑用户信息</h2>
- <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
- @using (Html.BeginForm()) {
- @Html.ValidationSummary(true)
- <div>
- @Html.LabelFor(model => model.XM)
- @Html.EditorFor(model => model.XM)
- @Html.ValidationMessageFor(model => model.XM)
- </div>
- <div>
- @Html.LabelFor(model=>model.XB)
- @Html.RadioButtonFor(model => model.XB, true)男
- @Html.RadioButtonFor(model => model.XB, false)女
- @Html.ValidationMessageFor(model => model.XB)
- </div>
- <div>
- @Html.LabelFor(model => model.AH1)
- @Html.CheckBoxFor(model => model.AH1)
- @Html.LabelFor(model => model.AH2)
- @Html.CheckBoxFor(model=>model.AH2)
- </div>
- <div>
- @Html.LabelFor(model => model.XL)
- @Html.DropDownListFor(model => model.XL, ViewData["XlList"] as IEnumerable<SelectListItem>)
- </div>
- <div>
- @Html.LabelFor(model => model.BZ)
- @Html.TextAreaFor(model=>model.BZ,3,30,null)
- </div>
- <div>
- <input type="submit" value="保存" name="tj"/>
- </div>
- }
1个示例 学会 mvc 常用标签的更多相关文章
- HTML之一天学会html(常用标签+网页架构)
1. 网页文件的创建 新建一个文本文件,将其命名为xxx.html或者xxx.htm(注意后缀名) 2. 简单的html页面的编写 在网页中都是通过标签来指定相应的显示内容,所有的页面内容都必须在 ...
- 一周学会HTML----Day02常用标签(上)
扩展 在开始第二天的课程之前,我们先来拓展两个概念. 第一个是前台和后台:前台是指用户看到的界面,而后台是指相关具有前线的人操作的界面 第二个是前端和后端:前端是值用户看到的界面和界布的操作(安卓.i ...
- 一周学会HTML----Day03常用标签(下)
form 标签 表单(重要) 表单用途 用于收集用户信息,提交给服务器 基本使用 (action,method,enctype) 要提交的表单必须放到form里 input select textar ...
- spring mvc常用注解的说明
最近一段时间学习了springboot,所以熟悉一下mvc中常用的注解,这样可以方便开发 简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类 ...
- J2EE进阶(十三)Spring MVC常用的那些注解
Spring MVC常用的那些注解 前言 Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam,@ModelAttribute等等这样 ...
- HTML之常用标签及属性
标签 标签分类 标签名 英文 英文含义 标签类型 备注 HTML页面结构 < html> HyperText Markup Language 超文本标记语言 < head> h ...
- HTML有哪些标签?html常用标签大全
html中标签有很多,每一种标签都有着不同的用处,下面这篇文章php中文网给大家总结html常用的标签,每一种标签都会跟随一个例子,话不多说,让我们来看看具体内容.<font>字体标签,用 ...
- html常用标签学习笔记
本文内容: 前言:本文讲述的内容包括几类常用标签,以及这些标签的一些常用属性(有一些属性由于已经有CSS样式来代替,所以对于一些不重要的这里选择不讲) 排版标签 段落标签:p div span 标题标 ...
- html常用标签整理
html文档结构 <!DOCTYPE html> <html lang="zh-CN"> #这个lang表示语言,zh-CN中文的意思,整个文档的内容以中文 ...
随机推荐
- springboot项目部署运行(后台);端口被占用;
打包: mvn clean package -Pprod -Dmaven.test.skip=true -Pprod 使用生产环境配置: -DskipTests,不执行测试用例,但编译测试用例类生成相 ...
- AtCoder - 2565 枚举+贪心
There is a bar of chocolate with a height of H blocks and a width of W blocks. Snuke is dividing thi ...
- JAVA Web从前端到后台常用框架介绍
原博客:https://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evank ...
- 提交post请求,参数为xml格式
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Oracle权限关于with admin option和with grant option的用法
1.with admin option with admin option的意思是被授予该权限的用户有权将某个权限(如create any table)授予其他用户或角色,取消是不级联的. 如授予A系 ...
- Python实现图片验证码识别
转载地址:https://blog.csdn.net/EB_NUM/article/details/77060009 具体想要实现上面的代码需要安装两个包和一个引擎 在安装之前需要先安装好Python ...
- PIE SDK地图显示范围截图
1.1. 功能简介 地图显示范围截图是将当前地图显示的范围进行输出.输出的 格式是png.bmp,主要思路就是通过IActiveView接口下的Output()方法进行输出 1.2. 功能实现说明 2 ...
- PIE SDK算法的自定义扩展
1.算法功能简介 算法的自定义扩展允许用户自主开发新的算法.自定义的算法必须实现PIE.SystemAlgo.BaseSystemAlgo基础类,这样才能被PIE的算法管理器调用起来. 2.算法功能实 ...
- nginx 反向代理导致的session丢失的问题
[原文链接] https://blog.csdn.net/xiaweiyidengzhewo/article/details/80921750 注意这篇文章解释的是“丢失”而不是“一致性”
- docker jenkins安装(一)
https://hub.docker.com/r/jenkins/jenkins jenkins的docker官方镜像地址 https://jenkins.io/ jenkins官方网站 环境: ...