【问题标题】:Asp.Net does not contain a definition for buttonClick?Asp.Net 不包含 buttonClick 的定义?
【发布时间】:2016-06-03 06:01:36
【问题描述】:

我正在尝试在 Visual Studio asp.net 上构建一个程序,但是每当我尝试单击带有 OnClick 事件的按钮时,我都会收到以下错误:

"CS1061: 'ASP.test_aspx' 不包含 'buttonClick' 的定义,并且找不到接受类型为 'ASP.test_aspx' 的第一个参数的扩展方法 'buttonClick'(您是否缺少 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";
    }
}
}

请保持解释尽可能简单,因为我是编码新手。感谢您的任何帮助。 :)

【问题讨论】:

标签: c# asp.net onclick


【解决方案1】:

您需要将您的事件处理程序声明为受保护:

protected void buttonClick(Object sender, EventArgs e)
{
    txt1.Text = "Text";
}

标记本质上是一个继承自后面代码的类。为了使成员可以访问,它们需要受到保护或公开。

【讨论】:

  • 别傻了,这个错误你只犯过一次,很多人都犯过。
【解决方案2】:

你必须让它至少受到保护:

protected void buttonClick(Object sender, EventArgs e)
{
    txt1.Text = "Text";
}

C# 中所有内容的默认访问权限是“您可以为该成员声明的最受限制的访问权限”,因此 private 用于方法。

由于 aspx 是您的代码隐藏类 (Inherits) 的子类,因此您想从 aspx 访问的任何方法都必须声明为 protectedpublic(至少在 C# 中,VB.NET 有Handles)。

阅读:

【讨论】:

    【解决方案3】:

    您需要声明您的事件处理程序,您可以通过以下几种方式做到这一点:

    protected void Page_Load(object sender, EventArgs e)
    {
        btnNote.Click += new EventHandler(btnNote_Click);
    }
    
    void btnAddNote_Click(object sender, EventArgs e)
    {
         // Do Stuff.
    }
    

    因此,您可以通过在页面加载处声明事件来看到,您可以像上面一样使用原始void。否则,您需要在 protected 中声明它。

    protected void btnAddNote_Click(object sender, EventArgs e)
    {
        // Do Stuff.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多