在aspx中单击按钮运行c代码

本文关键字:运行 代码 按钮 单击 aspx | 更新日期: 2023-09-27 18:27:59

我有一个aspx页面,上面有一个按钮。当用户单击按钮时,我必须在一个单独的.cs文件中运行一些c#代码。做这件事的方法是什么?目前,我有一种使用form.action将请求转发到另一个aspx页面的方法,但有没有一种方法可以在按下按钮时运行c#代码?

感谢

在aspx中单击按钮运行c代码

使用事件处理程序

例如:

<asp:Button id="b1" runat="server" OnClick="b1_OnClick"/>

代码背后:

protected void b1_OnClick(object sender, EventArgs e)
{
 //call your .cs file code here
}

您可以将.cs文件放入App_Code目录,并且应该能够在该代码中调用可访问的方法,而无需引用外部程序集。

可以通过以下方式完成:

在ASPX文件中:

<asp:Button id="btnTarget" runat="server" Text="Target" OnClick="btnTarget_OnClick"/>

在代码隐藏(.cs)文件中:

//First put the namespace of your target class in using block
protected void btnTarget_OnClick(object sender, EventArges e)
{
    //Target.NameSpace.TargetClass target = new Target.NameSpace.TargetClass(); // without using namespace in using blcok
    TargetClass target = new TargetClass(); // you can use direct Namespece here
    target.TargetMethod();
}

更新:

TargetClass的代码放在应用程序周围可用的App_code文件夹中,TargetClass应该是public访问修饰符。

使用分部类的示例代码

物理文件名-abc.cs

public partial class WebForm2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected override void OnInit(EventArgs e)
    {
        Button b = new Button();
        b.ID = "Button" + i;
        b.Text = "Button" + i;
        b.Click += new EventHandler(b_Click);
        form1.Controls.Add(b);
    }
}

物理文件名-abc1.cs

public partial class WebForm2 : System.Web.UI.Page
{
    void b_Click(object sender, EventArgs e)
    {
        //some code
    }
}

ASP.NET在事件驱动的模型中工作。无论用户执行了什么操作,无论是按钮单击还是其他可以被位于aspx页面代码后面的事件处理程序监听的操作。

您可以将所有代码放在事件处理程序中,也可以从事件处理程序调用其他类方法并执行任何您想要的操作。