当我单击提交时,我看到验证失败。 有很多红标错误。 但是,该页面仍然开机自检。 我怎样才能让这个东西在客户端失败?
注意。 此问题仅在 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 一起工作。
要修复它,我可以:
- 将主机更改为 IIS 8 (Windows 8)
- 在这种情况下,仅依靠服务器端验证。