C#按钮单击

1 c# asp.net events click button

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

<asp:Button runat="server" ID="bntLogin" OnClick="bntLogin_Click" Text="Login" />
Run Code Online (Sandbox Code Playgroud)

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

protected void bntLogin_Click(object sender, EventArgs e)
        {
           //
        }
Run Code Online (Sandbox Code Playgroud)

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

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

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

有任何想法吗?

And*_*are 6

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

检查哪些文件要用作您的代码隐藏文件,通过看@page在aspx文件本身的顶部指令(检查inherits属性) -你可能会惊讶.


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

bntLogin.Click += bntLogin_Click;
Run Code Online (Sandbox Code Playgroud)

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