[英]Asp.Net does not contain a definition for buttonClick?
我试图在Visual Studio asp.net上构建程序,但是每当尝试单击带有OnClick事件的按钮时,都会出现以下错误:
“ CS1061:'ASP.test_aspx'不包含'buttonClick'的定义,并且找不到扩展方法'buttonClick'接受类型为'ASP.test_aspx'的第一个参数(您是否缺少using指令或程序集引用? )”
这是我的HTML供参考:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="MRAApplication.test" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button id="b1" Text="Submit" runat="server" OnClick="buttonClick" />
<asp:TextBox id="txt1" runat="server" />
</div>
</form>
</body>
</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 void buttonClick(Object sender, EventArgs e)
{
txt1.Text = "Text";
}
标记本质上是一个从后面的代码继承的类。 为了使成员可以访问,需要对其进行保护或公开。
您必须使其至少受到保护:
protected void buttonClick(Object sender, EventArgs e)
{
txt1.Text = "Text";
}
C#中所有内容的默认访问权限是“您可以为该成员声明的最严格的访问权限”,因此对于方法来说是private
的。
由于aspx是您的codebehind类( Inherits
)的子类,因此您要从aspx访问的任何方法都必须声明为protected
或public
(至少在C#中,VB.NET具有Handles
)。
读:
您需要声明您的事件处理程序,可以通过以下几种方法进行操作:
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.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.