避免 asp.net 没有 AJAX 回传引起的页面刷新

Avoid page refresh caused by postback in asp.net without AJAX

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

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

(不要问我为什么必须没有 AJAX。我知道它可以工作。只是目前不是首选)

如果您不必在 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;
}

刚刚发现 iframe 方式。

Submit form without page reloading

虽然需要创建 'meaningless' 元素,但与我预期的不同,但方向与我一直在寻找的方向相同。