在 ASP.NET MVC 4 视图中,我有一个可以使用 AJAX 更新的“首屏下方”的 div。即使使用异步更新,浏览器也会滚动到页面顶部。
似乎有几种可用的 javascript 解决方案(我都没有开始工作),但是有没有人想出一个 MVC 解决方案来应对这个挑战......特别是像 web.UI 解决方案一样的 RequestPageManager 在“旧风格” (哈哈)asp.net?
在 ASP.NET MVC 4 视图中,我有一个可以使用 AJAX 更新的“首屏下方”的 div。即使使用异步更新,浏览器也会滚动到页面顶部。
似乎有几种可用的 javascript 解决方案(我都没有开始工作),但是有没有人想出一个 MVC 解决方案来应对这个挑战......特别是像 web.UI 解决方案一样的 RequestPageManager 在“旧风格” (哈哈)asp.net?
您是否尝试过 JQuery ajax() 调用?
这将像以下
function update() {
jQuery.ajax({
url: 'Page2.aspx/GetData',
type: "POST",
data: "{'userid':" + userid + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//This is where you update the div alert(data.d);
}
});
}
我从网上提取了上面的代码。虽然没有测试。只是想给出一个想法。
对我来说,浏览器会滚动似乎很奇怪,因为您使用从 AJAX 调用接收到的内容更新了页面。
但是,我可以想到可能发生这种情况的几种情况:
1) ajax 调用是从绑定到“a”标签的单击事件启动的,其中“href”属性设置为“#”,如:<a href="#">这是一个链接</a>。如果您没有在 click 事件中调用 preventDefault,浏览器将“访问”“#”链接并导致浏览器滚动到页面顶部。
2) 浏览器将焦点放在 ajax 调用中插入的内容下方的元素上。在这种情况下,添加的 ajax 内容足够长以使浏览器移动以将焦点保持在先前具有焦点的元素上。
如果其中任何一个原因不适用,请提供更多信息以诊断您的问题。