2

我似乎无法使用随 Visual Studio 2010 RC 发布的 MVC 版本进行客户端验证。

我已经用两个项目进行了尝试——一个从 1.0 升级,一个使用 VS 附带的模板。

我认为模板版本会起作用,但事实并非如此。添加了以下脚本:

<script type="text/javascript" 
  src="<%= Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>">
</script>
<script type="text/javascript" 
  src="<%= Url.Content("~/Scripts/jquery.validate.js")%>">
</script>

已正确下载到客户端。在我的表单页面中添加了以下内容:

<% Html.EnableClientValidation(); %>
<%--yes, am aware of the EndForm() bug! --%>
<% using (Html.BeginForm()) { %>    
<%--snip --%>

我可以看到客户端验证脚本已添加到表单的底部。但是客户端验证仍然没有发生。

更糟糕的是,在我升级的项目中,客户端验证脚本永远不会在页面中输出!

请注意:我特意询问的是 VS2010 RC 附带的 MVC2 版本。另外,我确实知道如何谷歌;如果您不熟悉 Visual Studio 候选版本中的此问题,请不要浪费任何人的时间搜索和回答。谢谢。


错误 ID10T:用户编辑一个页面并测试另一个页面。

但是,我无法在 MVC2 模板项目上进行客户端验证。如果有人知道如何让它在注册页面上工作,请回答。

4

2 回答 2

3

我也有同样的问题,MS(scottGu 和 haacked)的例子有点令人困惑,因为你真的不知道他们在谈论哪个版本,并且每次有新版本发布时,haacked 都会更新他的帖子,所以你是与你无关:(。

要在 VS 2010 上进行 jQuery 验证,请执行以下操作:

  1. 正如您回答的那样,您需要 MicrosoftMvcJQueryValidation.js 文件,有几种获取此文件的方法,我从 haacked 帖子的示例项目中获得它:ASP.NET MVC 2 Custom Validation
  2. 删除所有 JS 引用,只留下这个和 jquery.validate.min.js
  3. 调用 <% Html.EnableClientValidation(); %> 在表单的开始标记之前
  4. 不要忘记在您的字段上放置一些 Html.ValidationMessageFor(.. 因为这是将输入添加到客户端验证 JSON 对象的触发器

我猜你做了以上所有,但是在页面上留下了对 MicrosoftMvcValidation.js 的引用,请注意在这个文件的末尾有 MS 客户端验证的钩子。

有趣的是,我今天早上只是想写一篇关于这个问题的博客,然后发现了你的问题,\希望这会有所帮助

于 2010-03-27T06:04:59.597 回答
1

我没有运气让它在 MVC 2 RC 中工作。根据此处关于 SO 的其他问题,您必须从 MVC Futures 版本中获取 MicrosoftMvcJQueryValidation.js 文件,将左脚放在脑后,然后对 Dixie 吹口哨半小时。我做了这个以及更多,但无法让它发挥作用。

然而,我已经通过直接使用 jQuery Validation 插件让它工作了。更多的工作,但它完成了工作。

希望它会在 RTM 中得到修复。

于 2010-03-25T19:59:40.347 回答