C#按钮单击

时间:2009-11-19 21:12:02

标签: c# asp.net button events click

我在.aspx页面上有以下按钮:

<asp:Button runat="server" ID="bntLogin" OnClick="bntLogin_Click" Text="Login" />

使用.aspx.cs中的以下内容:

protected void bntLogin_Click(object sender, EventArgs e)
        {
           //
        }

当我尝试构建它时,我收到以下错误:

'ASP.reserve_aspx'不包含'bntLogin_Click'的定义,并且没有扩展方法'bntLogin_Click'接受类型'ASP.reserve_aspx'的第一个参数可以找到(你是否缺少using指令或汇编引用? )

但是,当我将click事件从代码隐藏移动到它构建的标记内的脚本块时。

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

您确定将方法放在正确的代码隐藏文件中吗?

通过查看aspx文件本身顶部的@page指令(检查inherits属性),检查您使用的文件作为代码隐藏文件 - 您可能会感到惊讶。 / p>


松散相关的旁注:通过将OnClick设置为与您要调用的方法相对应的字符串值,您隐式依赖于ASP.NET {{3}我不认为这是一个很好的方法。最好在页面的OnInit覆盖方法中手动连接控件,如下所示:

bntLogin.Click += bntLogin_Click;

依靠AutoEventWireup,您允许ASP.NET运行时为您创建此代码,并且由于这会在执行时发生,因此会导致执行时性能损失以及像您现在看到的异常一样。

答案 1 :(得分:0)

我通常在代码隐藏的OnInit方法中连接事件,这是ASP.NET 1.1的保留(那时设计师会把它放回去。)

答案 2 :(得分:0)

如果您仍然运行ASP.NET 1.1,请删除aspnet_client文件夹,重新构建并重试。