强制回发
本文关键字: | 更新日期: 2023-09-27 18:15:28
是否有办法在代码中强制回发?
我希望在asp.net web应用程序后面的c#代码中强制从方法中引发回发。
您可以尝试重定向到同一页面。
Response.Redirect(Request.RawUrl);
在表单提交后触发回发,因此它与客户端操作相关…请看这里的解释:ASP。是否有可能从服务器代码触发回发?
和这里是一个解决方案:http://forums.asp.net/t/928411.aspx/1
更简单:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
这是mamoo提到的http://forums.asp.net/t/928411.aspx/1的解决方案-以防网站离线。
StringBuilder sbScript = new StringBuilder();
sbScript.Append("<script language='JavaScript' type='text/javascript'>'n");
sbScript.Append("<!--'n");
sbScript.Append(this.GetPostBackEventReference(this, "PBArg") + ";'n");
sbScript.Append("// -->'n");
sbScript.Append("</script>'n");
this.RegisterStartupScript("AutoPostBackScript", sbScript.ToString());
不,不是从后面的代码。回发是使用Http POST方法从客户机上的页面发起的请求返回到服务器上的自身。在服务器端,您可以请求重定向,但将是Http GET请求。
您可以使用像Repeater
或ListView
这样的数据绑定控件,根据需要将其重新绑定到控件属性列表,并让它动态生成控件。
作为一种替代方法,您可以使用Response.Redirect(".")
重新加载同一页面
通过使用Server.Transfer("YourCurrentPage.aspx");我们可以很容易地实现这一点,它比Response.Redirect()更好;
您可以从Page_Load
事件中手动调用PostBack调用的方法:
public void Page_Load(object sender, EventArgs e)
{
MyPostBackMethod(sender, e);
}
但如果你的意思是,如果你可以有Page.IsPostBack
属性设置为true
没有真正的回复,那么答案是否定的。