服务器端和客户端验证

在视图中如果没有添加

@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:[email protected]">[email protected]</a><br />

    <strong>Marketing:</strong> <a href="mailto:[email protected]">[email protected]</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")

}

 

 
   

 



 

你可能感兴趣的:(服务器)