Asp.Net不包含buttonClick的定义?
我正在尝试在visual studio asp.net上构建一个程序,但每当我尝试单击一个带有OnClick事件的按钮时,我都会收到以下错误:
“CS1061:’ASP.test_aspx’不包含’buttonClick’的定义,并且没有扩展方法’buttonClick’接受类型’ASP.test_aspx’的第一个参数可以找到(你是否缺少using指令或汇编引用? )”
这是我的HTML供参考:
这是我的代码背后:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MRAApplication { public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } void buttonClick(Object sender, EventArgs e) { txt1.Text = "Text"; } } }
请保持解释尽可能简单,因为我不熟悉编码。 感谢您的帮助。 🙂
您需要将事件处理程序声明为protected:
protected void buttonClick(Object sender, EventArgs e) { txt1.Text = "Text"; }
标记本质上是一个inheritance自后面代码的类。 为了使成员可以访问,他们需要受到保护或公开。
你必须至少保护它:
protected void buttonClick(Object sender, EventArgs e) { txt1.Text = "Text"; }
C#中所有内容的默认访问权限是“您可以为该成员声明的最受限制的访问权限”,因此对于方法来说是private
的。
由于aspx是您的代码隐藏类( Inherits
)的子类,因此您要从aspx访问的任何方法都必须声明为protected
或public
(至少在C#中,VB.NET具有Handles
)。
读:
- 访问修饰符
- C#中的默认访问修饰符是什么?
您需要声明您的事件处理程序,您可以通过以下几种方式执行此操作:
protected void Page_Load(object sender, EventArgs e) { btnNote.Click += new EventHandler(btnNote_Click); } void btnAddNote_Click(object sender, EventArgs e) { // Do Stuff. }
因此,您可以通过在Page Load声明事件来看到,您可以像上面一样使用原始void
。 否则你需要在protected
声明它。
protected void btnAddNote_Click(object sender, EventArgs e) { // Do Stuff. }
- 您网站上的多个signalR连接/集线器
- 在asp.net框架中使用c#获取当前的cpu使用情况
- Asp.Net WebForms – 如何将ViewData作为param传递给用户控件
- System.Web.Services.Protocols.SoapException:服务器无法识别HTTP标头SOAPAction的值:
- WindowsIdentity和Classic .Net应用程序池
- HttpContext.Current.Items的范围
- 从我的asp.net mvc Web应用程序调用asp.net控制台应用程序
- 如何为ASP.NET 5应用程序设置区域设置?
- 如何使.net HttpClient使用http 2.0?