C# · 12月 25, 2021

c# – CS1061:编译错误消息

我在我的页面添加了一个链接按钮,并在调试时发出错误:

CS1061: ‘ASP.uilayer_test_aspx’ does not contain a deFinition for ‘lbl_Click’ and no extension method ‘lbl_Click’ accepting a first argument of type ‘ASP.uilayer_test_aspx’ Could be found (are you missing a using directive or an assembly reference?)

.aspx包含:

<asp:LinkButton ID=”lbl” runat=”server” OnClick=”lbl_Click”>LinkButton</asp:LinkButton>

页面指​​示:

<%@ Page Language=”C#” MasterPageFile=”~/UILayer/UI.Master” AutoEventWireup=”true” CodeBehind=”Test.aspx.cs” Inherits=”WebApp.UILayer.Test” Title=”Untitled Page” %>

.cs包含:

namespace WebApp.UILayer{ public partial class Test : System.Web.UI.Page { private void lbl_Click(object sender,EventArgs e) { } }}解决方法 你必须使lbl_Click受保护而不是私有.

这样做的原因是从aspx源创建了一个自己的类,称为ASP.uilayer_test_aspx.该类继承自Test类.私有方法对子类是不可见的,因此必须对其进行保护.