Asp.Net MVC EnableClientValidation不';行不通
我需要客户端验证和服务器端验证。我意识到这一点如下: 模型:(模型有一个包含测试类的数据模型(dbml) 控制器没什么特别的 观点:Asp.Net MVC EnableClientValidation不';行不通,validation,asp.net-mvc-2,data-annotations,client-side-validation,Validation,Asp.net Mvc 2,Data Annotations,Client Side Validation,我需要客户端验证和服务器端验证。我意识到这一点如下: 模型:(模型有一个包含测试类的数据模型(dbml) 控制器没什么特别的 观点: <% Html.EnableClientValidation(); %> <% using (Ajax.BeginForm("Index", "Test", FormMethod.Post, new AjaxOptions {}, new { enctype = "multipart/form-data" }))
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("Index", "Test", FormMethod.Post,
new AjaxOptions {}, new { enctype = "multipart/form-data" }))
{%>
<%= Html.AntiForgeryToken()%>
<fieldset>
<legend>Widget Omschrijving</legend>
<div>
<%= Html.LabelFor(Model => Model.Name) %>
<%= Html.TextBoxFor(Model => Model.Name) %>
<%= Html.ValidationMessageFor(Model => Model.Name) %>
</div>
</fieldset>
<div>
<input type="submit" value="Save" />
</div>
<% } %>
小部件Omschrijving
型号(名称)%%>
型号(名称)%%>
型号(名称)%%>
为了实现这一切,我还添加了对js文件的引用:
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
最终它必须起作用,但它不能100%起作用:
按下按钮后,它会进行验证,而不会刷新页面。
它还进行“半”客户端验证。仅当您在文本框中键入一些文本,然后将键入的文本退格时。此时将显示客户端验证。但当我尝试在控件之间点击时,没有客户端验证
我是不是错过了一些参考资料?(我使用Asp.Net MVC 2 RTM)我还以为我遗漏了什么,但我知道jQuery验证插件对mouseEnter/mouseLeave没有反应。根据该插件的文档(在-look部分标记为“使用演示时需要查找的一些东西”): 在一个字段被标记为无效之前,验证是惰性的:在第一次提交表单之前,用户可以在字段中进行制表,而不会收到恼人的消息——在他有机会实际输入正确的值之前,他不会被窃听 我假设MVC2客户端验证的规则是相同的。我不能确定这一点,因为文档中只说了“它在我的机器上工作”: 我使用了jQuery验证路径,它在中得到了支持(注意,这方面的文档不存在)。要使用它,只需将MicrosoftJax.js、MicrosoftMvcAjax.js和MicrosoftMvcValidation.js文件的脚本标记替换为以下两个标记:
<script src="/js/jquery.validate.js" type="text/javascript"></script>
<script src="/js/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
将路径替换为您的路径
我还发现需要从开发者页面升级到jquery.validate.js的最新版本,因为我们在这里使用的是jquery(1.4)的更高版本
希望这能有所帮助。嗯…,现在回答还来得及,但试试这个:
<script src="<%= Url.Content("ScriptFile.js") %>" type="text/javascript"></script>
更改加载的javascript的顺序
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
有完全相同的问题,这为我解决了…我用您描述的内容修改了代码,但没有改进。我使用:jQuery 1.4.2 jQuery validate 1.7 MicrosoftMvcJQueryValidation无版本号可用。我还将MicrosoftMvcJQueryValidation.js文件中的引用更改为//,但仍然没有改进。验证是如何包含在我的页面中的。但是,客户端验证根本不起作用,您是否看到任何问题?
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>