客户端验证仅对我的外键不起作用。
我有
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
包含以及
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
在我的web.config文件中设置。
没有自定义属性或任何内容。它就像
一样简单[Required(ErrorMessage = "Fiscal year is required")]
[Display(Name = "Fiscal Year")]
public int FiscalYearId { get; set; }
有关于此的任何想法吗?我已经搜索了一个解决方案,但我找到的只是它完全不起作用的情况,并且大多数解决方案都说要确保上面的两个脚本都是来源的,并且上面的两个键被添加到web.conifg文件中。 / p>
我没有js错误,我用firebug进行监控。一切看起来都很完美,但显然不是。
一旦我更正了非外键字段并重新提交,数据验证就可以在服务器端工作。这是一个问题,因为它正在创建一个双重验证并且让用户感到厌烦。
非常感谢帮助。
以下是Html部分。它包含在使用块中。它是标准的MVC3生成的CRUD代码。
<div class="editor-label">
<label for="FiscalYearId">Fiscal Year</label>
</div>
<div class="editor-field">
<select id="FiscalYearId" name="FiscalYearId">
<option value="">---Select Fiscal Year---</option>
<option value="1">FY2013</option>
</select>
<span class="field-validation-valid" data-valmsg-for="FiscalYearId" data-valmsg-replace="true"></span>
</div>
答案 0 :(得分:0)
我认为html中没有呈现元数据属性。请在您的视图中尝试此操作:
if (this.ViewContext.FormContext == null)
{
this.ViewContext.FormContext = new FormContext();
}