0

快速信息:我正在使用最新版本的 .NET 2.0,以下是我为重现错误而编写的精简测试页。

不包括标题位,(没有包含/内联 css 或 javascript)我的内容页面如下所示:

<asp:Content ID="Content1" ContentPlaceHolderID="cphMain" runat="server">
<div>
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
    <asp:TextBox ID="txtStuff" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtStuff" Display="None" ErrorMessage="need to fill it with words">  </asp:RequiredFieldValidator>
    <asp:Button ID="bClick" runat="server" Text="Kerlick" />
</div>
</asp:Content>

我的母版页(不包括标题位)如下所示:

<body>
<form runat="server" id="Form1">
                <div>
                    <asp:ContentPlaceHolder ID="cphMain" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
                <div id="end">

                </div>
</form>
</body>

单击该按钮时,页面会在函数 ValidationSummaryOnSubmit(validationGroup)中的WebResource.axd中引发“Microsoft JScript 运行时错误:对象不支持此属性或方法”错误(第 512 行)。

事实证明,如果我将ID="end"的 div 的 id 更改为 "end"以外的其他值,它可以解决问题。

现在,我已经解决了这个问题,但我很想知道为什么这首先会中断?

验证摘要是否有可能呈现具有相同 ID 的 div 并且在某处感到困惑?

4

1 回答 1

1

一种确定的方法。

加载 firebug,调用 validationsummary 并浏览页面以查看添加了哪些新元素。

通常重复 ID 不会造成问题,而且您没有设置 runat 服务器,因此它不是服务器端控件。

很有意思

于 2008-10-29T13:14:20.750 回答