为何ASP.NET页面出现‘Click_Edit’与EventHandler委托不匹配错误?
解决“No overload for 'Click_Edit' matches delegate 'EventHandler'”错误
问题原因
你的Click_Edit方法签名不符合ASP.NET服务器控件事件处理的要求:服务器端按钮的onserverclick事件必须遵循EventHandler委托的标准签名,即第一个参数必须是object类型,而你错误地使用了ObjectStateFormatter作为参数类型,导致委托匹配失败。
修复方案
- 修正方法参数类型:将
Click_Edit方法的第一个参数从ObjectStateFormatter sender改为object sender - 修复拼写错误:方法内提示文本中的
selscted是拼写错误,改为selected
修改后的Click_Edit方法代码如下:
public void Click_Edit(object sender, EventArgs e) { for (int i = 1; i < Request.Form.Count; i++) { if (Request.Form.AllKeys[i].Contains("chk")) { Session["userToUpdate"] = int.Parse(Request.Form.AllKeys[i].Remove(0, 3)); Response.Redirect("/pages/UpdateAdmin.aspx"); } } mess.InnerHtml = "No user was selected to edit!"; }
额外检查
确认ASPX页面中按钮的onserverclick属性值与后台方法名完全一致(当前代码中onserverclick="Click_Edit"与方法名匹配,无需修改)。
内容的提问来源于stack exchange,提问作者joee__mama
相关产品推荐
相关产品推荐

