zoukankan      html  css  js  c++  java
  • MVC校验

    新建一个Model

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel.DataAnnotations;
     4 using System.Linq;
     5 using System.Web;
     6 
     7 namespace MvcValidateDemo.Models
     8 {
     9     public class UserInfo
    10     {
    11         public int Id { get; set; }
    12         [StringLength(5, ErrorMessage = "*长度必须小于5")]
    13         [Required(ErrorMessage = "*姓名为必填项")]
    14         public string UserName { get; set; }
    15         [RegularExpression(@"^d+$")]
    16         [Range(18, 20)]
    17         public int Age { get; set; }
    18     }
    19 }
    UserInfo

    创建UserInfo控制器

     1 using MvcValidateDemo.Models;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Web;
     6 using System.Web.Mvc;
     7 
     8 namespace MvcValidateDemo.Controllers
     9 {
    10     public class UserInfoController : Controller
    11     {
    12         //
    13         // GET: /UserInfo/
    14 
    15         public ActionResult Index()
    16         {
    17             return View();
    18         }
    19 
    20 
    21         public ActionResult Add()
    22         {
    23 
    24 
    25             return View();
    26         }
    27         [HttpPost]
    28         public ActionResult Add(UserInfo userInfo)
    29         {
    30             //ModelState.IsValid==true那么校验就是成功的
    31             if (ModelState.IsValid)
    32             {
    33 
    34             }
    35             return RedirectToAction("Index");
    36         }
    37     }
    38 }
    UserInfo

    创建强类型前台页面

     1 @model MvcValidateDemo.Models.UserInfo
     2 
     3 @{
     4     Layout = null;
     5 }
     6 
     7 <!DOCTYPE html>
     8 
     9 <html>
    10 <head>
    11     <meta name="viewport" content="width=device-width" />
    12     <title>Add</title>
    13 </head>
    14 <body>
    15     <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    16     <script src="~/Scripts/jquery.validate.min.js"></script>
    17     <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
    18     
    19     @using (Html.BeginForm("Index","UserInfo",FormMethod.Get)) {
    20         @Html.AntiForgeryToken()
    21         @Html.ValidationSummary(true)
    22     
    23         <fieldset>
    24             <legend>UserInfo</legend>
    25     
    26             <div class="editor-label">
    27                 @Html.LabelFor(model => model.UserName)
    28             </div>
    29             <div class="editor-field">
    30                 @Html.TextBoxFor(model => model.UserName)
    31                 @Html.ValidationMessageFor(model => model.UserName)
    32             </div>
    33     
    34             <div class="editor-label">
    35                 @Html.LabelFor(model => model.Age)
    36             </div>
    37             <div class="editor-field">
    38                 @Html.TextBoxFor(model => model.Age)
    39                 @Html.ValidationMessageFor(model => model.Age)
    40             </div>
    41     
    42             <p>
    43                 <input type="submit" value="注册" />
    44             </p>
    45         </fieldset>
    46     }
    47     
    48     <div>
    49         @Html.ActionLink("Back to List", "Index")
    50     </div>
    51 </body>
    52 </html>
    Add

    注意事项:

    1:在设置全局校验的时候,引用jquery文件

    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

    2:客户端全局校验设置:在webconfig中

    <add key="ClientValidationEnabled" value="true" />

    如果为false,则整个全局客户端校验则没有了

    如果设置当前某个页面的客户端校验,则使用代码:

     1 @model MvcValidateDemo.Models.UserInfo
     2 
     3 @{
     4     Layout = null;
     5 }
     6 
     7 <!DOCTYPE html>
     8 
     9 <html>
    10 <head>
    11     <meta name="viewport" content="width=device-width" />
    12     <title>Add</title>
    13     <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    14     <script src="~/Scripts/jquery.validate.min.js"></script>
    15     <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
    16 </head>
    17 <body>
    18 
    19     @{Html.EnableClientValidation(false);}
    20 
    21     @using (Html.BeginForm("Index", "UserInfo", FormMethod.Get))
    22     {
    23         @Html.AntiForgeryToken()
    24         @Html.ValidationSummary(true)
    25 
    26         <fieldset>
    27             <legend>UserInfo</legend>
    28 
    29             <div class="editor-label">
    30                 @Html.LabelFor(model => model.UserName)
    31             </div>
    32             <div class="editor-field">
    33                 @Html.TextBoxFor(model => model.UserName)
    34                 @Html.ValidationMessageFor(model => model.UserName)
    35             </div>
    36 
    37             <div class="editor-label">
    38                 @Html.LabelFor(model => model.Age)
    39             </div>
    40             <div class="editor-field">
    41                 @Html.TextBoxFor(model => model.Age)
    42                 @Html.ValidationMessageFor(model => model.Age)
    43             </div>
    44 
    45             <p>
    46                 <input type="submit" value="注册" />
    47             </p>
    48         </fieldset>
    49     }
    50 
    51     <div>
    52         @Html.ActionLink("Back to List", "Index")
    53     </div>
    54 </body>
    55 </html>
    @{Html.EnableClientValidation(false);}

    其中默认为true,改为false,则当前页面客户端校验失效

  • 相关阅读:
    K折交叉验证
    浅谈python的第三方库——pandas(三)
    关于机器学习二分类问题的几个评估指标辨析
    浅谈python的第三方库——pandas(二)
    浅谈python的第三方库——pandas(一)
    【内核篇】Windows内核重要变量
    【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
    【系统篇】从int 3探索Windows应用程序调试原理
    【编程篇】使用操作系统异常巧妙获取交叉链表的交点
    【灌水篇】为什么我们要拼搏北上广
  • 原文地址:https://www.cnblogs.com/qinsilandiao/p/4966815.html
Copyright © 2011-2022 走看看