客户端验证仍会导致 Chrome 中的开机自检



当我单击提交时,我看到验证失败。 有很多红标错误。 但是,该页面仍然开机自检。 我怎样才能让这个东西在客户端失败?

注意。 此问题仅在 Chrome v33.0 中发生。 IE v10 和 FF v26.0 不这样做。 Cookie 已启用 chrome。 此外,运行 Visual Studio 调试器时不会发生此问题。 调试器配置为使用本地 IIS 服务器。 它只发生在开发服务器上。

我在 web.config 中配置了客户端验证:

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

我的表单如下所示:

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
   //fields....
    <p>
        <input type="submit" value="Create" />
    </p>
}

我的参考资料应该是完整的:

    <script src="@Url.Content("~/Scripts/jquery-ui-1.10.4.custom.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.min.js")" type="text/javascript"></script>    
<link rel="stylesheet" href="@Url.Content("~/Content/Themes/start/jquery-ui-1.10.4.custom.css")" />
    <link rel="stylesheet" href="@Url.Content("~/Content/Site.css")" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<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>
<script src="@Url.Content("~/Scripts/customItemRequestValidation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/conditional-validation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/CatalogScript.js")" type="text/javascript"></script>

此问题与 Windows 7 和 Server 2008 有关。 当我将主机更改为Windows 8(我怀疑是服务器2012)时,问题消失了。 我过去遇到过与 IIS 版本相关的 MVC 类似问题。 我知道MVC修改IIS。 所以,我在这里猜测有一个与 IIS 版本相关的错误以及 MVC 如何与导致问题的 IIS 一起工作。

要修复它,我可以:

  1. 将主机更改为 IIS 8 (Windows 8)
  2. 在这种情况下,仅依靠服务器端验证。

最新更新