我在 ASP.Net 页面上有一个按钮,在执行一些处理后,它将调用 Response.Redirect 返回同一页面,以便重新显示查询结果。然而,由于某种原因,该页面显示为空白。看来 IsPostBack 在重定向后返回 true。有人知道为什么会发生这种情况吗?
该页面是社区服务器中的自定义页面。这是基本代码:
void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string connStr = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM ge_vw_NonResidents", connStr);
DataTable tbl = new DataTable();
da.Fill(tbl);
da.Dispose();
rptNonResidents.DataSource = tbl;
rptNonResidents.DataBind();
}
}
void btnApprove_Command(object sender, CommandEventArgs e)
{
// Code removed for testing.
Response.Clear();
Response.Redirect("ApproveResidents.aspx", true);
Response.End();
}
最佳答案
Response.Redirect 将从浏览器触发 HTTP GET。由于没有发布数据,IsPostBack 为 false。你还有其他事情要做。
我建议启动Fiddler并查看请求的顺序。它应该看起来像:
- 客户端:HTTP POST(单击按钮)
- 服务器:HTTP 302(重定向)
- 客户端:HTTP GET
- 服务器:HTTP 200(写入页面)
关于asp.net - Response.Redirect 导致 IsPostBack 为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217067/