有没有办法在代码中强制回发?
我希望强制从我的asp.net Web应用程序后面的c#代码中的方法引发回发。
答案 0 :(得分:9)
在表单提交后触发回发,因此它与客户端操作有关... 看看这里解释一下: ASP.NET - Is it possible to trigger a postback from server code?
这里有一个解决方案: http://forums.asp.net/t/928411.aspx/1
答案 1 :(得分:8)
您可以尝试重定向到同一页面。
Response.Redirect(Request.RawUrl);
答案 2 :(得分:6)
简单:
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
答案 3 :(得分:2)
这是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());
答案 4 :(得分:1)
不,不是来自背后的代码。回发是使用Http POST方法从客户端上的页面发回到服务器上的请求。在服务器端,您可以请求重定向,但将是Http GET请求。
答案 5 :(得分:1)
您可以使用数据绑定控件,如Repeater
或ListView
,根据需要将其重新绑定到控件属性列表,并让它动态生成控件。
作为替代方案,您可以使用Response.Redirect(".")
重新加载同一页面。
答案 6 :(得分:0)
您可以从Page_Load
事件手动调用PostBack调用的方法:
public void Page_Load(object sender, EventArgs e)
{
MyPostBackMethod(sender, e);
}
但是,如果你的意思是你可以将Page.IsPostBack
属性设置为true
而没有真正的回复,那么答案就是否定。
答案 7 :(得分:0)
使用Server.Transfer(“YourCurrentPage.aspx”);我们可以轻松实现这一点,它比Response.Redirect(); coz Server.Transfer()将为您节省往返时间。