繁体   English   中英

Asp.Net不包含buttonClick的定义吗?

[英]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访问的任何方法都必须声明为protectedpublic (至少在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM