我在页面中添加了一个链接按钮,并在调试时显示错误:
CS1061:'ASP.uilayer_test_aspx'不包含'lbl_Click'的定义,并且没有扩展方法'lbl_Click'可以找到类型为'ASP.uilayer_test_aspx'的第一个参数(你是否缺少using指令或程序集)引用?)
.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)
{
}
}
}
答案 0 :(得分:9)
您必须使lbl_Click
受保护而非私人。
这样做的原因是从aspx源创建了一个名为ASP.uilayer_test_aspx
的自己的类。此类从您的Test
类继承。私有方法对于子类是不可见的,因此必须对其进行保护。
答案 1 :(得分:1)
由于您已将点击处理程序lbl_Click
修饰符设置为private
,因此您必须将其设置为Protected
或Public
。由于aspx文件继承了cs类,因此无法访问私有成员。
此
private void lbl_Click(object sender, EventArgs e)
应该像..
protected void lbl_Click(object sender, EventArgs e)