如何从asp:Button的OnCommand中的另一个文件调用方法? asp.net C#

时间:2019-01-08 16:03:20

标签: c# asp.net

我想整理我的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

1 个答案:

答案 0 :(得分:0)

发布此问题后的几分钟,我自己偶然发现了答案。我完全忽略了CodeFile标签。因此,在ToggleDivPage中找不到CodeBehind,因为它必须在Default.aspx.cs中。移动它并使其public当然可以解决我的问题。感谢@Stefan和@James Thorpe也解决了这个问题。