没有Response.Redirect的调用处理程序
本文关键字:处理 程序 调用 Response Redirect 没有 | 更新日期: 2023-09-27 18:05:57
可能重复:
如何从ASPX.VB函数内部调用ASHX?
看看下面的代码,我的问题很明显,我如何在不重定向的情况下调用ashx文件?我需要代码按此顺序执行,但当页面重定向时,重定向下面的所有内容都不会执行。提前谢谢。
protected void btnAddMach_Click(object sender, EventArgs e)
{
InsertMachine();
if (cbMachIcal.Checked && !cbMachGcal.Checked)
{
Response.Redirect("iCal.ashx?type=Lead&leadID=" + Convert.ToInt32(hfLeadID.Value) + "&date=" +
txtMachTickDate.Text + "&time=" + txtMachTickTime.Text + "&user=" +
Request.Cookies["upProspektor"]["userName"] + "&model=" +
ddlModel.SelectedItem.Text);
}
else if (!cbMachIcal.Checked && cbMachGcal.Checked)
CreateGcalEvent();
else if (cbMachIcal.Checked && cbMachGcal.Checked)
{
CreateGcalEvent();
Response.Redirect("iCal.ashx?type=Lead&leadID=" + Convert.ToInt32(hfLeadID.Value) + "&date=" +
txtLeadTickDate.Text + "&time=" + txtLeadTickTime.Text + "&user=" +
Request.Cookies["upProspektor"]["userName"] + "&model=" +
ddlModel.SelectedItem.Text);
}
ClearControls(upMachDetails);
UpdateHasMach();
btnUpComm.Style.Add("display", "none");
btnNewMach.Style.Add("display", "none");
btnUpMach.Style.Add("display", "none");
if (hfAddMach.Value.ToString() == string.Empty)
{
hfAddMach.Value = "1";
dvPl = dvProLeads(cmdProLeads());
gvProLeads.DataSource = dvPl;
gvProLeads.DataBind();
this.upReports.Update();
}
Utilities.DisplayAlert(this, this.GetType(), "Machine Info Entered Successfully!");
}
我最初的想法是,这听起来像是一个有缺陷的设计。您正在将浏览器重定向到ASHX文件,然后尝试继续执行当前页面(包括将内容输出到页面(。我建议重构代码来解决这个问题。
但是。。。
如果您必须在页面的早期重定向,并且仍然在原始页面中执行某些代码,则可以使用Response.Redirect(string, bool)
使页面在调用时不会自动停止执行。
protected void btnButton_Click(object sender, EventArgs e){
if(redirect_flag){
Response.Redirect(newUrl, false);
}
// This will still execute, as well as the remainder of the entire page
}
我仍然建议重构代码,而不是使用这种方法。