我想整理我的Default.aspx,并尝试将按钮的'actionlistener'(我知道在C#中可能不是正确的名称)移动到名为'DefaultCodeBehind.cs'的文件中。 / p>
我在Default.aspx顶部声明了CodeBehind文件,如下所示:
<%@ Page Language="C#" CodeBehind="DefaultCodeBehind.cs" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
这是按钮(也在Default.aspx中):
<asp:Button runat="server" type="button" id="contSec5" CommandName="contSec5" OnCommand="ToggleDivPage" CssClass="button_menubar" text="Section 5" />
这是DefaultCodeBehind.cs中的动作侦听器/方法:
void ToggleDivPage(object sender, CommandEventArgs e)
{
code...
}
这是尝试执行代码时出现的错误:
CS1061:“ default_aspx”不包含“ ToggleDivPage”的定义,也找不到找不到接受类型为“ default_aspx”类型的第一个参数的扩展方法“ ToggleDivPage”(您是否缺少using指令或程序集引用?)< / p>
我也试图像这样调用方法:
<asp:Button runat="server" type="button" id="contSec5" CommandName="contSec5" OnCommand="DefaultCodeBehind.ToggleDivPage" CssClass="button_menubar" text="Section 5" />
但是我并不是真的希望它能正常工作。 (对于C#,尤其是asp.net,我还很陌生,这可能解释了这种有趣的尝试。)
我是否必须声明CodeBehind不同,还是不能将动作侦听器移到Default.aspx之外。
谢谢。
最诚挚的问候,
Lars
答案 0 :(得分:0)
发布此问题后的几分钟,我自己偶然发现了答案。我完全忽略了CodeFile
标签。因此,在ToggleDivPage
中找不到CodeBehind
,因为它必须在Default.aspx.cs
中。移动它并使其public
当然可以解决我的问题。感谢@Stefan和@James Thorpe也解决了这个问题。