MVC存在验证错误,但发送到服务器的请求和ModelState.IsValid为true

时间:2016-12-09 07:31:30

标签: asp.net-mvc validation asp.net-mvc-4 html-helper

我正在使用htmlHelper ValidationMessageFor。存在验证错误,但请求转到服务器并且ModelState.IsValid变为true。如果存在某种验证错误,ModelState.IsVaid是否可能变为false。我可以在客户端做到这一点,但我想在服务器端开发它。

[DataType(DataType.EmailAddress)]
[EmailAddress(ErrorMessage = "Wrong Email")]
public string ElectronicMailAddress { get; set; }

查看

@Html.LabelFor(model => model.ElectronicMailAddress, new { @class = "control-label"})
@Html.TextBoxFor(model => model.ElectronicMailAddress, new { @class = "form-control"})
@Html.ValidationMessageFor(model => model.ElectronicMailAddress, "", new { @class = "text-danger" })

控制器

[HttpPost]
        public JsonResult CallingFunction()
        {
            if (ModelState.IsValid)
            {........}
}

1 个答案:

答案 0 :(得分:0)

您需要使用Html.EditorFor来验证工作,而不是Html.TextBoxFor。此外,您需要确保将以下脚本加载到您的页面中。通过包语法或常规引用

<script src="~/Scripts/jquery.min.js"></script> // your version of Jquery
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>