我在我的页面添加了一个链接按钮,并在调试时发出错误:
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类.私有方法对子类是不可见的,因此必须对其进行保护.