ASP.MVC3默认启用客户端验证?

时间:2011-07-07 09:29:50

标签: asp.net-mvc-3 client-side-validation

在我的布局页面中,我有以下指向验证Javascript文件的链接,

 <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"> </script>
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")"type="text/javascript"> </script>
         <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"type="text/javascript"></script>

我的实体使用验证属性(如

)进行修饰
[Required(ErrorMessage ="Please enter a customer name")]
    public string CustomerName { get; set; }

然后在我看来,我在更新字段之后指定了验证消息,如此

<div class="label-for">@Html.LabelFor(model => model.CustomerName)</div>
<div class="editor">@Html.EditorFor(model => model.CustomerName)</div>
@Html.ValidationMessageFor(model => model.CustomerName) 

验证正在运行但不是在客户端,我理解的方式是当其中一个字段留空而无需标记到另一个字段时,应显示错误消息,是否还需要其他任何东西来获取客户端验证工作?

3 个答案:

答案 0 :(得分:0)

可能是这项工作:确保在您的web.config文件中,将“ClientValidationEnabled”设置为“True”

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

注意:在MVC3 Web项目中,有两个web.config文件,一个位于“View”文件夹下,另一个位于根Web项目下。确保根中的那个不会覆盖另一个。

答案 1 :(得分:0)

IIRC jqueryjquery.validate版本之间存在一些不兼容性。您似乎使用旧版本的jquery 1.4.4。尝试使用最新的更新。例如,安装ASP.NET MVC 3 Tools Update并在Visual Studio中创建一个新的ASP.NET MVC项目,它将为您提供以下脚本的正确版本:jquery,jquery.validate和jquery.validate.unobtrusive。

答案 2 :(得分:-2)

jQuery验证与您的验证机制无关。也许Microsoft.Ajax.Validation应该是负责任的。但是要使用jquery.validation,你应该编写代码。就这样。它不会开箱即用。