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. constexpr函数------c++ primer

    constexpr函数是指能用于常量表达式的函数.定义constexpr函数的方法有其他函数类似,不过要遵循几项约定:函数的返回值类型及所以形参的类型都是字面值类型,而且函数体中必须有且只有一条ret ...

  2. Ext中setValue和setRawValue

    Ext.getCmp('modifyStatus').setValue(record.get('status').trim()); Ext.getCmp('modifyStatus').setRawV ...

  3. day6学python 生成器迭代器+压缩文件

    生成器迭代器+压缩文件 readme的规范 1软件定位,软件的基本功能2运行代码的方法:安装环境,启动命令3简要的使用说明4代码目录结构说明,更详细点可以说明软件的基本原理5常见问题说明 ====== ...

  4. 题解 P2350 【[HAOI2012]外星人】

    题目链接 还是本宝宝写题解的一贯习惯 $ :$ 先吐槽吐槽这道题$……$ 相信不少同学第一眼一定没有看懂题.(因为我也没看懂) ~~初中~~数学知识: 对于函数 $ f(x)$ 有 $f^{-1}(x ...

  5. linux安装配置阿里云的yum源和python3

    一.yum源理解 yum源仓库的地址 在/etc/yum.repos.d/,并且只能读出第一层的repo文件 yum仓库的文件都是以.repo结尾的 二.下载阿里云的.repo仓库文件 ,放到/etc ...

  6. Django rest framework框架——APIview源码分析

    一.什么是rest REST其实是一种组织Web服务的架构,而并不是我们想象的那样是实现Web服务的一种新的技术,更没有要求一定要使用HTTP.其目标是为了创建具有良好扩展性的分布式系统. 可用一句话 ...

  7. 错误代码: 1142 REFERENCES command denied to user 'wuyong'@'localhost' for table 'orders'

    错误代码: 1142 REFERENCES command denied to user 'wuyong'@'localhost' for table 'orders' 原因:在使用SQLyog操作数 ...

  8. Jenkins持续集成企业实战系列之Jenkins手动构建-----04

    注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...

  9. Ajax轮询 select循环输出

    弹出层 <include file="Pub:header"/> <style> .del{color:red} .addname{color:#337ab ...

  10. tp5 路由定义

    路由定义 | Route::rule('路由表达式','路由地址','请求类型'); > route 目录下的任何路由定义文件都是有效的,默认的路由定义文件是 route.php > 可以 ...