zoukankan      html  css  js  c++  java
  • MVC进阶篇(三)——model层数据验证

    前言

      常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西。我写了一个小demo,分享给大家。

    内容

      一个表单的提交,进行相应的验证。微软提供的MVC中的model层数据验证。

    Demo

    Model

    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    
    namespace mvctest.Models
    {
        public class usermodel
        {
            /*
             * 在MVC里面采用数据验证,
             * 引用:using System.ComponentModel.DataAnnotations
             */
            [Required(ErrorMessage = "名称不能为空")]
            [StringLength(10, ErrorMessage = "您输入的字符不能超过10个")]
            [DisplayName("姓名")]
            public string userName { get; set; }
    
    
            [Required(ErrorMessage = "性别不能为空")]
            [DisplayName("性别")]
            public string sex { get; set; }
    
            [Required(ErrorMessage = "*必填项")]
            [RegularExpression(@"^[w-.]+@[w-.]+(.w+)+$", ErrorMessage = "邮箱输入不正确")]
            [DisplayName("邮箱")]
            public string eMail { get; set; }
        }
    }

    View

    <div>
        @*表单提交*@
        @using (Html.BeginForm("userinfo", "Home", FormMethod.Post))
        {
            <p>@Html.LabelFor(b => b.userName):@Html.TextBoxFor(b => b.userName):@Html.ValidationMessageFor(b=>b.userName)</p>
            <p>@Html.LabelFor(b => b.eMail):@Html.TextBoxFor(b => b.eMail):@Html.ValidationMessageFor(b=>b.eMail)</p>
            <p>@Html.LabelFor(b => b.sex):@Html.TextBoxFor(b => b.sex):@Html.ValidationMessageFor(b=>b.sex)</p>
            <input type="submit" value="提交" />
        }
    </div>

    Controller

            /*
             * 姓名:周丽同-2016年12月30日16:09:40
             * 功能:表单验证
             */
            public ActionResult userinfo(Models.usermodel usermodel)
            {
                ViewData["message"] = "数据基本验证成功";
                return View(usermodel);
            }

    效果图

     

    小结

      通过这些验证,是不是用户体验度更加高了。


    感谢您的宝贵时间···

  • 相关阅读:
    Pod中spec的字段常用字段及含义
    day62-无名有名分组反向解析,路由分发,视图层等
    day61-数据增删改查,orm表关系,django请求生命周期流程图
    day60-静态文件,数据库,ORM
    day59-简易版本的web框架,django框架初识
    day58-jquery后续,前端BootSrtap,图书管理系统搭建
    day57-jQuery练习与操作,各种事件
    day56-js,jquery
    day55-js
    day54-js类型与对象
  • 原文地址:https://www.cnblogs.com/zhoulitong/p/6412318.html
Copyright © 2011-2022 走看看