【发布时间】:2013-01-07 02:00:15
【问题描述】:
我正在使用 ASP.NET 不显眼的验证来开发网页。当我使用默认的 IE9 浏览器模式在 IE9 中查看我的页面时,该页面按预期工作。但是,当我简单地将浏览器模式从 IE9 切换到 IE8 时,在页面重新加载时收到以下 JavaScript 错误:
“错误:‘Page_Validators’未定义”
不显眼的验证需要一个名为“jquery”的 ScriptResourceMapping。那是到位的。我还在母版页中使用了<script> 标记以在所有页面上包含 jquery。
另外,我在母版页上有一个空标记,使我的用户控件能够通过控件标记中的 ScriptManagerProxy 标记加载其他 javascript。
母版页上的相关标记:
<%@ Master Language="C#" AutoEventWireup="true" Inherits="Site" Codebehind="Site.master.cs" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
<title></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
有什么想法吗?
【问题讨论】:
-
它们是未定义的吗!?或者您在加载该脚本部分之前尝试在页面完全加载之前使用它们?
-
我发现是这个调用导致了错误:
// disable validators $('#CoappPersonalInformationForm.failureNotification').each(function () { ValidatorEnable(this, false); }); -
页面加载完毕后尝试调用,看看问题是否解决。
-
未渲染的 ASP 代码无助于调试浏览器问题。它当然不能帮助我们解决问题。如果您查看浏览器实际看到的呈现的 HTML/JS 代码可能会有所帮助。
-
ValidatorEnable(this, false);调用是从 jquery 的文档就绪函数发出的。
标签: jquery asp.net unobtrusive-validation ie8-browser-mode