错误:“已经声明为受保护的WithEvents”

时间:2013-03-17 17:57:06

标签: asp.net vb.net

网络控件

<asp:TextBox id="txtUsername" runat="server" CssClass="input-block-level" placeholder="Username" type="text" required></asp:TextBox>
<asp:TextBox id="txtPassword" runat="server" CssClass="input-block-level" placeholder="Password" type="password" required></asp:TextBox>

背后的代码

Inherits System.Web.UI.MasterPage
Protected WithEvents txtUsername As System.Web.UI.WebControls.Literal
Protected WithEvents txtPassword As System.Web.UI.WebControls.Literal

错误:

  

解析错误:'txtPassword'已在'此类中声明为'受保护的事件txtPassword As System.Web.UI.Webcontrols.TextBox           'txtUsername'已在'this class

中声明为'Protected WithEvents txtUsername As System.Web.UI.Webcontrols.TextBox

可能是错误的原因是什么?

3 个答案:

答案 0 :(得分:2)

我知道这已经晚了3年,但我刚刚解决了这个问题,我将分享我的解决方案,以帮助任何在这里磕磕绊绊的人。

当我注释掉一个控件,在项目的其他部分工作,然后取消注释它时,我收到了这个错误。

只需在aspx和aspx.vb中更改控件的ID,错误就会消失。

<!-- changed from txt to text -->
<asp:TextBox id="textUsername" runat="server" CssClass="input-block-level" placeholder="Username" type="text" required></asp:TextBox>
<asp:TextBox id="textPassword" runat="server" CssClass="input-block-level" placeholder="Password" type="password" required></asp:TextBox>

答案 1 :(得分:0)

当您向aspx页面添加控件时,您的控件将添加到与您的代码隐藏文件同名的部分类中。如果再次添加到代码文件中,您将收到错误。

答案 2 :(得分:0)

您可能有两个或多个具有相同类名的Web表单。

somepage.aspx anotherpage.aspx 的内容:

<%@ Page ... Inherits="somepage" %>
...

somepage.aspx.vb anotherpage.aspx.vb 的内容:

Partial Class somepage
    ...
End Class

在上面的示例代码中,将其他页。* 文件中的Inherits属性和类名更改为anotherpage可以解决问题。如果您使用C#,代码隐藏看起来会有所不同,但它的想法是相同的。