1

我有一个处理程序,它生成一个 csv 文件并提供下载,这个处理程序由我的 defoult.aasp 上的代码隐藏中的按钮调用,如下所示:

 Response.Redirect("~/Handler.ashx?startDate="+tbStartDate.Text.Trim()+"&endDate="+tbEndDate.Text+"&isCheck="+chkDuplication.Checked.ToString());

现在我在上面的代码之后有另一行应该更新我的列表视图,但列表视图没有更新,有什么方法可以在 csv 下载后更新列表视图。

谢谢,

4

2 回答 2

2

问题在于您的重定向。从微软文档

原始 URL 指示的页面中的任何响应正文内容(例如显示的 HTML 文本或 Response.Write 文本)都将被忽略。

根据需要进行的处理,您有几个选项:

  1. 如果您不需要发回页面即可打开文件,您可以使用 ashx 页面(包括其查询字符串)作为 URL 在 javascript 中打开一个新窗口(window.open,目标为“_blank”) .

  2. 如果您的页面需要回发,您可以在服务器端生成 javascript,并在页面首次使用Page.ClientScript.RegisterStartupScript重新加载到浏览器时执行。

我们实际上根据具体要求使用这两种方法。一般来说,我们更喜欢第一种方法,即使这意味着在 javascript 中需要做更多的工作,但有时回发是不可避免的。

于 2012-07-28T23:13:24.793 回答
1

尝试使用 endResponse 属性,该属性指示当前页面的执行是否应该终止,将其设为 false 以便执行 Response.End 下面的行。

当您在 HTTP 处理程序中调用 Response.Redirect 方法并且想要重定向到另一个页面而不终止请求时,请将 endResponse 设置为 false。索鲁斯 - http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.90).aspx

   Response.Redirect("url",false);
   // code to update your list view 
于 2012-07-29T00:23:04.943 回答