1

当我在 .aspx Web 表单的设计视图中双击一个按钮 (myButton) 时,会在后面的代码中自动生成一个事件处理程序:protected void myButton_Click(object sender, EventArgs e)

现在,如果我理解正确,为了将该方法与 Button.Click 事件相关联,某处必须有类似的东西:myButton.Click += new EventHandler(this.myButton_Click);

但是,我似乎在任何地方都找不到。我在整个解决方案中使用了 Ctrl+F,并检查了 mywebform.aspx.designer.cs。

起初我以为是因为 .aspx 页面的 AutoEventWireup 设置为 true。但是,即使在将 AutoEventWireup 设置为 false 之后,按钮仍然会通过运行代码来响应被点击protected void myButton_Click(object sender, EventArgs e)

我知道您不应该弄乱生成的代码,我也不打算这样做,我只是想更多地了解它是如何在幕后工作的。

4

1 回答 1

1

事件处理程序的分配实际上是在 asp 标记中完成的。 是指向可以以声明方式分配给您的按钮的一系列不同属性的链接。

这是另一个关于使用 OnClick 属性的MSDN 链接。

我猜您的按钮的 ASP 标记分配了以下属性:

OnClick="myButton_Click"

至于它是如何被翻译成赋值的,页面在第一次被请求时在运行时被编译(ASP.NET 编译概述)。

于 2012-08-07T01:52:24.527 回答