我在使用ASP在按钮上注册事件时遇到问题。它给了我错误:
CS1061: 'ASP.permissions_aspx' does not contain a definition for 'CreateEndUserClick' and no extension method 'CreateEndUserClick' accepting a first argument of type 'ASP.permissions_aspx' could be found (are you missing a using directive or an assembly reference?)
当我在浏览器中访问该页面时,它仍然可以成功编译。基本上它找不到onclick处理程序,但我无法弄清楚原因。
这是我的asp文件Permissions.aspx:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/MainLayout.master" AutoEventWireup="True" CodeBehind="Permissions.aspx.cs" Inherits="WebProj._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button_CreateEndUser" runat="server" OnClick="CreateEndUserClick" Text="Create New End User/Group" />
</asp:Content>
我明显删除了页面中的一些非相关元素。
我的代码隐藏文件Permissions.aspx.cs:
namespace WebProj
{
public partial class Permissions : System.Web.UI.Page
{
protected global::System.Web.UI.WebControls.Button Button_CreateEndUser;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreateEndUserClick(object sender, EventArgs e)
{
Button_CreateEndUser.Text = "Hamstertext";
}
}
}
我不确定为什么它无法找到该功能。可能是因为我使用内容标签将其放在主文件中吗?
我非常感谢有关如何解决这个问题的正确方向的任何帮助或要点。
谢谢你的时间!
答案 0 :(得分:3)
在Page
指令中,尝试更正Inherits
属性:
Inherits="WebProj.Permissions"
此属性应包含类后面的代码名称,在您的情况下为WebProj.Permissions
(不是WebProj._Default
)。请注意,此处指定的类应在CodeBehind
属性(在您的情况下为Permissions.aspx.cs
)中指定的文件中定义。
答案 1 :(得分:1)
您必须使用
Inherits="WebProj.Permissions"
原因是,您拥有命名空间WebProj 和类权限。所以继承必须使用相同的。