我想获得一个非常简单的客户端验证示例,以在ASP.NET MVC 2中工作。我使用数据注释来设置必需的属性“姓氏”。当我使用Html.ValidationMessageFor(x => x.Surname)时,将正确的客户端验证脚本写入页面。但是,当我使用Html.ValidationMessage(“姓氏”)时,客户端验证不会在页面发布之后呈现出来。客户端验证仅在表单发布后才开始工作!我可以看到脚本在表单发布后在页面中更新。 Html.ValidationMessage()中似乎存在一个错误?ASP.NET MVC 2客户端验证不适用于Html.ValidationMessage()?
1
A
回答
0
我还没试过,但元数据存储在proprerty中,所以只有ValidationMessageFor有能力检查prop(通过静态反射)。
另一个帮助器使用一个字符串键来访问没有任何引用属性(也没有验证元数据信息)的modelstate字典,所以我不认为Html.ValidationMessage(字符串键)有能力注入验证脚本客户端。
0
据我所知,验证需要尝试验证,即使它是客户端。
您可以尝试在GET视图中创建模型的新实例,然后在将其发送到视图之前使用TryValidateModel()。这应该会导致验证逻辑运行,从而填充客户端验证,这将导致所有必填字段显示其错误版本,但取决于您选择如何选择样式,这并不是一个大问题。
2
确保您在母版页头中引用了正确的脚本。
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>
也要看你的观点,以确保客户端验证呼叫您的形式
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) {%>
<%= Html.ValidationSummary(true) %>
...
<% } %>
,当然你的验证消息显示上面的问题。
<span class="editor-label"><%= Html.ValidationMessageFor(u => u.Name)%></span>
这真的是你所需要的。我相信只有在字段中输入文本,然后将文本和标签移出字段时,必需属性才会开始检查,因此请尝试查看是否获得验证。其他人将在属性需要时验证。例如,当您超过50个字符时,[StringLength(50)]
将显示一条错误消息。
相关问题
- 1. asp.net mvc客户端验证
- 2. ASP.NET MVC验证摘要用于客户端验证
- 3. ASP.Net MVC 3不显眼的客户端验证不适用于下拉列表
- 4. 客户端验证不MVC
- 5. ASP.NET MVC 2 RC客户端验证不工作
- 6. ASP.NET MVC 2:动态启用/禁用客户端验证
- 7. asp.net客户端验证MicrosoftMvcJQueryValidation
- 8. MVC 2 Html CheckBox客户端验证
- 9. ASP.NET MVC 2.0客户端验证HOWTO
- 10. Asp.Net MVC 2.0客户端验证VS 2010
- 11. asp.net mvc jquery客户端验证
- 12. ASP.Net MVC 2.0客户端验证回发
- 13. ASP.NET MVC 3客户端验证
- 14. 客户端验证为asp.net mvc下拉?
- 15. 在ASP.NET MVC 2和AJAX中启用客户端验证
- 16. 客户端验证不起作用Mvc
- 17. Asp.net MVC客户端验证,没有客户端验证的子项?
- 18. 客户端验证MVC 5
- 19. MVC客户端验证
- 20. MVC Html.TextBox(不适用)客户端验证样式
- 21. ASP.NET MVC 2 Ajax形式的客户端验证功能
- 22. 如何比较2值与ASP.NET MVC中的客户端验证?
- 23. ASP.NET MVC 2纯jQuery的客户端验证
- 24. 客户端验证列表在ASP.Net MVC 2
- 25. MVC 3.0 - 不显眼的客户端验证不适用于自定义属性
- 26. jquery客户端验证asp.net
- 27. ASP.NET客户端API验证
- 28. Telerik asp.net客户端验证
- 29. ASP.NET MVC3客户端验证
- 30. ASP.NET CheckBoxList客户端验证
问题是为什么ValidationMessage(字符串键)不像ValidationMessageFor()那样工作,而不是如何使用ValidationMessageFor – 2010-04-13 17:15:19