强制回发

有没有办法在代码中强制回发?

我希望强制从我的asp.net Web应用程序后面的c#代码中的方法引发回发。

在表单提交后触发回发,因此它与客户端操作有关…请查看此处的解释: ASP.NET – 是否可以从服务器代码触发回发?

这里有一个解决方案: http : //forums.asp.net/t/928411.aspx/1

您可以尝试重定向到同一页面。

 Response.Redirect(Request.RawUrl); 

更简单:

 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("\n"); this.RegisterStartupScript("AutoPostBackScript", sbScript.ToString()); 

不,不是来自代码。 回发是使用Http POST方法从客户端上的页面发回到服务器上的请求。 在服务器端,您可以请求重定向,但将是Http GET请求。

您可以使用数据绑定控件(如RepeaterListView ,根据需要将其重新绑定到控件属性列表,并让它动态生成控件。

作为替代方法,您可以使用Response.Redirect(".")重新加载同一页面。

您可以从Page_Load事件手动调用PostBack调用的方法:

 public void Page_Load(object sender, EventArgs e) { MyPostBackMethod(sender, e); } 

但是,如果你的意思是你可以将Page.IsPostBack属性设置为true而没有真正的回发,那么答案就是否定。

通过使用Server.Transfer(“YourCurrentPage.aspx”); 我们可以轻松实现这一点,它比Response.Redirect(); coz Server.Transfer()将为您节省往返时间。