在aspx中单击按钮运行c代码
本文关键字:运行 代码 按钮 单击 aspx | 更新日期: 2023-09-27 18:27:59
我有一个aspx页面,上面有一个按钮。当用户单击按钮时,我必须在一个单独的.cs文件中运行一些c#代码。做这件事的方法是什么?目前,我有一种使用form.action将请求转发到另一个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页面代码后面的事件处理程序监听的操作。
您可以将所有代码放在事件处理程序中,也可以从事件处理程序调用其他类方法并执行任何您想要的操作。