zoukankan      html  css  js  c++  java
  • 服务器端和客户端验证

    在视图中如果没有添加

    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }

    那么数据就不能转换成javascript脚本在客户端进行验证,不能节省流量,浪费钱。

    所以,还有另一种方法可以在服务器端进行验证,服务器分为数据库服务器和主机服务器,数据库服务器主要存放表中要用到的数据,而主机服务器则用来存放网站的一些文件网页

    ModelState.IsValid

    这个属性在控制器中可以自动判断前端中的数据验证,它是一个bool类型,如果提交一个文本框中的数据是空的,那么将返回false,否则为true

    ModelState.AddModelError("UserName", "用户名已经注册");

    这个属性可以返回一些错误信息,比如用户名已经注册,UserName是字段名,后面的参数是要显示的文本,在UserNmae后面显示

    完整的代码在下面:

     public class RegisterModel
        {
            [Required]
            public string UserName { get; set; }
            public string Email { get; set; }
            [StringLength(5,ErrorMessage="字符长度已超出")]
            [Compare("Password")]
            public string Password { get; set; }
            public string ConfirmPassword { get; set; }
        }
     public ActionResult Contact(Models.RegisterModel model)
            {
                ViewBag.Message = "Your contact page.";
                if (ModelState.IsValid)
                {
                    if (model.UserName == "admin")
                    {
                        ModelState.AddModelError("UserName", "用户名已经注册");
                    }
                }
                else
                {
                    ModelState.AddModelError("UserName", "用户名不能为空,真的不骗你");
                }
    
                return View(model);
            }
    @model MvcBookStore.Models.RegisterModel
    @{
        ViewBag.Title = "Contact";
    }
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    
    <address>
        One Microsoft Way<br />
        Redmond, WA 98052-6399<br />
        <abbr title="Phone">P:</abbr>
        425.555.0100
    </address>
    
    <address>
        <strong>Support:</strong>   <a href="mailto:Support@example.com">Support@example.com</a><br />
        <strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a>
    </address>
    @using (Html.BeginForm("Contact", "Home", FormMethod.Post))
    {
        @Html.LabelFor(m=>m.UserName)
        @Html.TextBoxFor(m=>m.UserName)
        @Html.ValidationMessageFor(m=>m.UserName) 
        <input type="submit" value="提交"/>
    }
    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }
    
    
    


  • 相关阅读:
    JSON
    在ubuntu上部署Django
    Django安装
    Python3 编程第一步
    Python3 字典
    nginx 服务器下载安装配置详解
    彻底删除Navicat注册表
    JS 对输入的姓名 手机号码 邮箱做校验
    mysql 启动报错
    网线没问题 没法上网
  • 原文地址:https://www.cnblogs.com/772933011qq/p/4505152.html
Copyright © 2011-2022 走看看