0

我正在尝试进行客户端验证并遵循了几个教程,它看起来很简单,但我不知道为什么它不适用于我的项目,下面是代码:

 <script type="text/javascript" src="/Scripts/jquery-1.4.1.min.js"></script>
 <script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
 <script type="text/javascript" src="/Scripts/MicrosoftMvcJQueryValidation.js"></script>

    <% Html.EnableClientValidation(); %>
    <% using (Html.BeginForm()) {%>
    <%: Html.ValidationSummary("Please Correct the errors and try again")%>

    <div class="editor-label">
            <%: Html.LabelFor(model => model.test,"Test") %>
        </div>
        </td>
        <td>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.test)%>
            <%: Html.ValidationMessageFor(model => model.test)%>
        </div>
        </td>
        </tr>

编辑:母版页

 <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery-1.5.1.js") %>"></script>
    <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.js") %>"></script>
    <script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.unobtrusive.js") %>"> </script>
    <script src="/Scripts/jquery-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/Scripts/tiny_mce/jquery.tinymce.js"></script>
    <script src="/Scripts/ie6.js" type="text/javascript"></script>

任何想法为什么当我按下该字段的选项卡时客户端验证不起作用。

4

1 回答 1

2

在 ASP.NET MVC 3 中,jqueryjquery.validate进行客户端验证的默认框架。所以修改你的代码看起来像这样:

<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery-1.5.1.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/scripts/jquery.validate.unobtrusive.js") %>"></script>

<% using (Html.BeginForm()) { %>
    <%= Html.ValidationSummary("Please Correct the errors and try again") %>

    <div class="editor-label">
        <%= Html.LabelFor(model => model.test, "Test") %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.test) %>
        <%= Html.ValidationMessageFor(model => model.test) %>
    </div>
<% } %>

注意事项:

  • 使用 jQuery 1.5.1,这是与 ASP.NET MVC 3 RTM 和工具更新捆绑的默认版本。确保您使用更高版本的 jQuery 作为 IIRC,jquery.validate 插件和 jquery 版本之间存在一些不兼容。
  • 使用jquery.validate.js
  • 使用jquery.validate.unobtrusive.jswhich 不显眼地将 jQuery.validate 插件附加到由 Html 助手发出的 HTML5 data-* 属性。
  • 使用Url.Content帮助器来引用静态资源,而不是硬编码它们的位置。
  • 不再需要打电话Html.EnableClientValidation()
  • 不再需要包含任何以前缀开头的 javascriptMicrosoft*

最后一点:确保在您的 web.config 中启用了不显眼的客户端脚本验证:

<appSettings>
    ...
    <add key="ClientValidationEnabled" value="true" />
</appSettings>

获取这些脚本的最新版本的最佳方法是安装ASP.NET MVC 3 Tools Update,使用 Visual Studio 中的默认向导创建一个新的 ASP.NET MVC 3 项目并获取这 3 个脚本。

于 2011-07-14T15:05:36.323 回答