ASP.NET MVC 4在ajax更新后保持滚动位置的方法

ASP.NET MVC 4在ajax更新后保持滚动位置的方法,ajax,asp.net-mvc,asp.net-mvc-4,scroll,Ajax,Asp.net Mvc,Asp.net Mvc 4,Scroll,在ASP.NETMVC4视图中,我有一个div“在折叠下面”,可以使用AJAX进行更新。即使使用异步更新,浏览器也会滚动到页面顶部 似乎有几种javascript解决方案可用(我都没有使用过),但有没有人能想出一个MVC解决方案来应对这一挑战。。。特别是像“旧式”(哈哈)asp.net中带有RequestPageManager的web.UI解决方案这样的解决方案?您尝试过JQuery ajax()调用吗 它将像下面一样 function update() { jQ

在ASP.NETMVC4视图中,我有一个div“在折叠下面”,可以使用AJAX进行更新。即使使用异步更新,浏览器也会滚动到页面顶部

似乎有几种javascript解决方案可用(我都没有使用过),但有没有人能想出一个MVC解决方案来应对这一挑战。。。特别是像“旧式”(哈哈)asp.net中带有RequestPageManager的web.UI解决方案这样的解决方案?

您尝试过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”属性设置为“#”,如:。如果未在单击事件中调用preventDefault,浏览器将“访问”“#”链接并使浏览器滚动到页面顶部

2) 浏览器关注的是ajax调用中插入内容下方的元素。在本例中,添加的ajax内容足够长,可以使浏览器移动,以将焦点保持在以前具有焦点的元素上


如果以上任何一个原因都不适用,请提供更多信息来诊断您的问题。

Yes即使jquery.ajax调用也会导致页面在div足够低时返回顶部,需要向下滚动以使其可见。