避免由不使用AJAX的asp.net中的回发导致的页面刷新

时间:2019-05-06 10:47:23

标签: asp.net download httpresponse postback page-refresh

我知道有很多类似的问题,但是我想到了一个棘手的想法。

众所周知,下载HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment")可能会阻止浏览器刷新页面,因为下载本身就是一个响应,而刷新的页面无法作为另一个响应生成。当然,我不会为了摆脱页面刷新而进行下载,但是我在考虑是否存在任何其他形式的HTTP响应可以“替换”页面刷新,或任何{{1 }}可以清除默认响应。有想法吗?

(不要问我为什么没有AJAX的情况必须如此。我知道它可以工作。目前暂时不受欢迎)

2 个答案:

答案 0 :(得分:0)

如果您不必通过POST主体发送数据,则可以利用image对象并将其src设置为服务器URL,这将执行代码在服务器上,不会刷新我们的页面。这是一种AJAX,但不是常规方式。

以下是一个示例JS代码

function execute_test_method_on_server(param1, param2) {
    var u = "/api/somecontroller/test_get_method?param1=" + param1 + "&param2=" + param2;
    (new Image).src = u;
    return true;
}

答案 1 :(得分:0)

只是发现了iframe方式。

Submit form without page reloading

虽然需要创建一个“无意义的”元素,但并不是我所期望的,而是朝着我一直在寻找的方向。