HtmlHelper用法大全3:Html.LabelFor、Html.EditorFor、Html.RadioButtonFor、Html.CheckBoxFor

 @Html.***For:为由指定表示式 表示对象中的 每个属性,返回对应html

示例效果:

一、设置通用的验证方法

         Models层

  1. public class MyStringIsChineseAttribute: ValidationAttribute
  2. {
  3. #region 验证中文
  4. private bool _myreturn = false;
  5. public bool myNullDefVal
  6. {
  7. get { return _myreturn; }
  8. set { _myreturn = value; }
  9. }
  10. //覆盖父类方法(确定对象的指定值是否有效)
  11. public override bool IsValid(object value)
  12. {
  13. if (value == null) return _myreturn;
  14. return Regex.IsMatch(value.ToString(), @"^[\u4e00-\u9fa5]{0,}$", RegexOptions.IgnoreCase);
  15. }
  16. //覆盖父类方法(基于发生错误的数据字段对错误消息应用格式设置)
  17. public override string FormatErrorMessage(string name)
  18. {
  19. return "非中文字符!";
  20. }
  21. #endregion
  22. }

Controller层

  1. public class MyValidDataController : Controller
  2. {
  3. /// <summary>
  4. /// 姓名验证,只能是中文
  5. /// </summary>
  6. /// <param name="ExamineeName">姓名</param>
  7. /// <returns></returns>
  8. public JsonResult ExamineeNameCheck(string XM)
  9. {
  10. MyStringIsChineseAttribute ff = new MyStringIsChineseAttribute();
  11. bool myidexist = ff.IsValid(XM);
  12. if (!myidexist)
  13. {
  14. return Json("姓名只能是中文!", JsonRequestBehavior.AllowGet);
  15. }
  16. else
  17. {
  18. return Json(true, JsonRequestBehavior.AllowGet);
  19. }
  20. }
  21. }

二、Person类(Models层)

  1. public class Person
  2. {
  3. #region  属性定义
  4. [Display(Name = "姓名")]
  5. [Required(ErrorMessage="{0}不能为空.")]
  6. [StringLength(4, MinimumLength = 2, ErrorMessage = " {0} 最少 {2} 字符,最多{1}字符。")]
  7. [Remote("ExamineeNameCheck", "MyValidData")]//服务端参与的验证(注意:ExamineeNameCheck方法的参数名必须叫XM)
  8. //[RegularExpression(@"^[\u4e00-\u9fa5]{0,}$",ErrorMessage = "只能输入汉字")]//正则表达式
  9. public string XM{ get; set; }
  10. [Display(Name = "性别")]
  11. public bool XB { get; set; }
  12. [Display(Name = "爱好1")]
  13. public bool AH1 { get; set; }
  14. [Display(Name = "爱好2")]
  15. public bool AH2 { get; set; }
  16. [Display(Name = "学历")]
  17. public string XL { get; set; }
  18. [Display(Name = "备注")]
  19. public string BZ { get; set; }
  20. #endregion
  21. }

三、Controller层

  1. public class TestController : Controller
  2. {
  3. public ActionResult Index()
  4. {
  5. Person person = new Person();
  6. person.XM = "小张";
  7. person.XB = false;
  8. person.AH2 = true;
  9. List<SelectListItem> lists = new List<SelectListItem>
  10. {
  11. new SelectListItem{Text="大学",Value="大学"},
  12. new SelectListItem{Text="高中",Value="高中"},
  13. new SelectListItem{Text="初中",Value="初中"}
  14. };
  15. ViewData["XlList"] = lists;
  16. person.XL = "高中";
  17. person.BZ = "备注";
  18. return View(person);
  19. }
  20. [HttpPost]
  21. public ActionResult Index(Person person,FormCollection fc)
  22. {
  23. //注意防止页面反复提交
  24. string str = "";
  25. if (ModelState.IsValid)//模型状态字典实例有效
  26. {
  27. //一、验收数据的合法性
  28. //1、AJAX实现客户端数据验证(在数据被送到后台前,我们应该先进行一遍验证,这样可以节约很多资源)
  29. //2、同步方式完成数据验证
  30. if (String.IsNullOrEmpty(person.XM))
  31. {
  32. ViewData.ModelState.AddModelError("XM", "姓名不能为空!");
  33. return Index();//返回Index方法
  34. }
  35. str += "姓名:" + person.XM + "<br>";
  36. str += "性别:" + person.XB + "<br>";
  37. str += "爱好1:" + person.AH1 + "<br>";
  38. str += "爱好2:" + person.AH2 + "<br>";
  39. str += "学历:" + person.XL + "<br>";
  40. str += "备注:" + person.BZ + "<br>";
  41. }
  42. return Content(str);
  43. }
  44. }

四、Views层

    1. @model MvcApplication4.Models.Person
    2. @{
    3. ViewBag.Title = "Index";
    4. Layout = "~/Views/Shared/_Layout.cshtml";
    5. }
    6. <h2>编辑用户信息</h2>
    7. <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    8. <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    9. @using (Html.BeginForm()) {
    10. @Html.ValidationSummary(true)
    11. <div>
    12. @Html.LabelFor(model => model.XM)
    13. @Html.EditorFor(model => model.XM)
    14. @Html.ValidationMessageFor(model => model.XM)
    15. </div>
    16. <div>
    17. @Html.LabelFor(model=>model.XB)
    18. @Html.RadioButtonFor(model => model.XB, true)男
    19. @Html.RadioButtonFor(model => model.XB, false)女
    20. @Html.ValidationMessageFor(model => model.XB)
    21. </div>
    22. <div>
    23. @Html.LabelFor(model => model.AH1)
    24. @Html.CheckBoxFor(model => model.AH1)
    25. @Html.LabelFor(model => model.AH2)
    26. @Html.CheckBoxFor(model=>model.AH2)
    27. </div>
    28. <div>
    29. @Html.LabelFor(model => model.XL)
    30. @Html.DropDownListFor(model => model.XL, ViewData["XlList"] as IEnumerable<SelectListItem>)
    31. </div>
    32. <div>
    33. @Html.LabelFor(model => model.BZ)
    34. @Html.TextAreaFor(model=>model.BZ,3,30,null)
    35. </div>
    36. <div>
    37. <input type="submit" value="保存" name="tj"/>
    38. </div>
    39. }

1个示例 学会 mvc 常用标签的更多相关文章

  1. HTML之一天学会html(常用标签+网页架构)

    1.  网页文件的创建 新建一个文本文件,将其命名为xxx.html或者xxx.htm(注意后缀名) 2.  简单的html页面的编写 在网页中都是通过标签来指定相应的显示内容,所有的页面内容都必须在 ...

  2. 一周学会HTML----Day02常用标签(上)

    扩展 在开始第二天的课程之前,我们先来拓展两个概念. 第一个是前台和后台:前台是指用户看到的界面,而后台是指相关具有前线的人操作的界面 第二个是前端和后端:前端是值用户看到的界面和界布的操作(安卓.i ...

  3. 一周学会HTML----Day03常用标签(下)

    form 标签 表单(重要) 表单用途 用于收集用户信息,提交给服务器 基本使用 (action,method,enctype) 要提交的表单必须放到form里 input select textar ...

  4. spring mvc常用注解的说明

    最近一段时间学习了springboot,所以熟悉一下mvc中常用的注解,这样可以方便开发 简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类 ...

  5. J2EE进阶(十三)Spring MVC常用的那些注解

    Spring MVC常用的那些注解 前言 Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam,@ModelAttribute等等这样 ...

  6. HTML之常用标签及属性

    标签 标签分类 标签名 英文 英文含义 标签类型 备注 HTML页面结构 < html> HyperText Markup Language 超文本标记语言 < head> h ...

  7. HTML有哪些标签?html常用标签大全

    html中标签有很多,每一种标签都有着不同的用处,下面这篇文章php中文网给大家总结html常用的标签,每一种标签都会跟随一个例子,话不多说,让我们来看看具体内容.<font>字体标签,用 ...

  8. html常用标签学习笔记

    本文内容: 前言:本文讲述的内容包括几类常用标签,以及这些标签的一些常用属性(有一些属性由于已经有CSS样式来代替,所以对于一些不重要的这里选择不讲) 排版标签 段落标签:p div span 标题标 ...

  9. html常用标签整理

    html文档结构 <!DOCTYPE html> <html lang="zh-CN"> #这个lang表示语言,zh-CN中文的意思,整个文档的内容以中文 ...

随机推荐

  1. php代码审计10审计会话认证漏洞

    挖掘经验:遇到的比较多的就是出现在cookie验证上面,通常是没有使用session来认证,直接将用户信息保存在cookie中      Session固定攻击:黑客固定住目标用户的session i ...

  2. IO相关3(string流)

    sstream 头文件定义了三个类型来支持内存 IO,这些类型可以向 string 写入数据,从 string 读取数据,就像 string 是一个 IO 流一样. istringstream 从 s ...

  3. uoj #298. 【CTSC2017】网络

    #298. [CTSC2017]网络 一个一般的网络系统可以被描述成一张无向连通图.图上的每个节点为一个服务器,连接服务器与服务器的数据线则看作图上的一条边,边权为该数据线的长度.两个服务器之间的通讯 ...

  4. postgress数据库 出现大写字母 字段名但是提示说不存在

    select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exis ...

  5. JavaWeb学习笔记(十一)—— JavaWeb开发模式【转】

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  6. JavaWeb学习笔记(九)—— JSTL标签库

    一.JSTL概述 1.1 什么是JSTL  JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...

  7. [软件工程]团队介绍&学长采访

    项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 第一次团队作业 - 采访! 我们在这个课程的目标是 团队开发,合作学习 1.团队介绍 岗位 人员& ...

  8. [BZOJ 1489][HNOI2009]双递增序

    传送门 满满的负罪感,昨晚的刷题历程:写几道难题吧-->算了,还是只切道水题吧-->RNG赢了...... 背包一下就行了 #include <bits/stdc++.h> u ...

  9. 04-树6 Complete Binary Search Tree (30 分)

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...

  10. centos 7更新yum源与更新系统

    1.备份/etc/yum.repos.d/下的原有文件(假如你想保留原系统的yum源的话),举例 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...