我有以下代码:
btnTest.Click += (sender,e) => SomeAction()
为什么这段代码在WinForms中有效,而在asp.net中无效。在asp.net中,我必须执行以下操作:
btnTest.Click += new EventHandler(SomeAction);
两种情况下的目标框架是.net 4.0
答案 0 :(得分:1)
你是否有可能试图打电话
btnTest.Click += (sender,e) => SomeAction()
从Page_Load方法或其他事件处理程序?在这种情况下,参数“sender”和“e”已经被声明,并且可能导致冲突。
将定义更改为:
btnTest.Click += (s,ea) => SomeAction();
您可能希望将参数转发给您的函数:
btnTest.Click += (s,ea) => SomeAction(s, ea);
答案 1 :(得分:0)
它适用于我的ASP.NET 4.0:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void SomeFunc()
{
Button1.Click += (sender, e) => SomeAction();
}
private void SomeAction()
{
}
}