避免 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 + "¶m2=" + param2;
(new Image).src = u;
return true;
}
刚刚发现 iframe 方式。
Submit form without page reloading
虽然需要创建 'meaningless' 元素,但与我预期的不同,但方向与我一直在寻找的方向相同。
我知道有很多类似的问题,但我想到了一个棘手的想法。
众所周知,下载 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 + "¶m2=" + param2;
(new Image).src = u;
return true;
}
刚刚发现 iframe 方式。
Submit form without page reloading
虽然需要创建 'meaningless' 元素,但与我预期的不同,但方向与我一直在寻找的方向相同。