在我的 ASP.NET MVC 4 应用程序中,我尝试将不显眼的客户端验证与 Fluent Validation 结合使用。
<script src="/Scripts/jquery.validate.min.js" type="text/javascript">
</script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript">
</script>
在创建新的 ASP.NET MVC 4 应用程序时,我有 VS2010 提供的这两个 .js 文件。我还在我的 web.config 文件上启用了客户端验证。
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
据我所知,何时启用客户端验证和非侵入式 JavaScript,具有客户端验证规则的输入字段包含 data-val="true" 属性以触发非侵入式客户端验证。我的输入字段上有这些字段。
例如,
<input class="input-validation-error" data-val="true" data-val-
required="error text here" id="purchasePrice"
name="PurchasePrice" type="text" value="">
<span class="field-validation-error error" data-valmsg-for="PurchasePrice"
data-valmsg-replace="true">'Purchase Price' must not be empty.</span>
但是,当我提交表单时,它会发布到控制器,并且我的模型会在我的控制器代码而不是客户端上进行检查。
编辑 :
这是我的表单开始标签。
@using (Html.BeginForm("Create", "Product", FormMethod.Post,
new { enctype = "multipart/form-data", @class = "mainForm",
@id = "productCreateForm" }))
有任何想法吗?谢谢。