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中文的意思,整个文档的内容以中文 ...
随机推荐
- redis可视化辅助工具
安装链接: http://docs.redisdesktop.com/en/latest/quick-start/ 图标
- Linux解压工具
指令 yum install lrzsz
- (获取qq群成员信息,并下载头像,每个群保存一个文件夹)
# 1.获取到自己qq里面所有的群,并且保存每个群里面的群成员信息到mongodb里面# 下载每个群的群成员的头像# 1.抓包,抓到获取自己所有qq群的接口 requests模块 https://qu ...
- 洛谷P2287 [HNOI2004]最佳包裹(三维凸包)
题面 传送门 题解 左转板子,调个精度就能\(A\)了 //minamoto #include<bits/stdc++.h> #define R register #define fp(i ...
- vmware vSphere虚拟网络(一)
为了更好的了解vSphere网络虚拟化解决方案,这里引入了一些概念,以便我们更好的了解虚拟网络. 一.网卡: 物理网卡称为vmnic,在ESXi中,第一块物理网卡叫做vmnic0,第二块叫做vmnic ...
- 在请求中存取属性setAttribute&getAttribute方法
在请求中保存属性: public void setAttribute(String name,Object o) request.setAttribute("mess"," ...
- postgreSQL PL/SQL编程学习笔记(二)
Control Structures of PL/SQL Control structures are probably the most useful (and important) part of ...
- python xlwt 与 xlsxwriter 模块差别
Xlwt 模块有一个bug, 就是所用样式过多的话,之后的数据将使用不了样式,相反xlsxwriter 模块 不会有此问题. 用Xlwt模块的同学们,请务必转换用xlsxwriter模块 !!!!!! ...
- hdu1711 Number Sequence kmp模板
题目传送门 学习博客 学习了kmp算法,理解了算法思想,但还没有到能把这个思想用语言来描述出来. #include<bits/stdc++.h> #define clr(a,b) mems ...
- [转] spring JdbcTemplate 查询,使用BeanPropertyRowMapper
[From] http://blog.csdn.net/limenghua9112/article/details/45096437 应用: 使用Spring的JdbcTemplate查询数据库,获取 ...