jQuery获得刷新整个页面

时间:2013-09-03 09:48:23

标签: jquery asp.net-mvc

我对MVC和jQuery很新,所以请跟我一起玩。

我有一个页面,其中包含我需要添加编辑功能的一些注释。我创造了一个 部分视图来编辑它们,我在div中加载包含实际的部分视图 使用jQuery获取评论。

问题是,当我这样做时,整个页面会以某种方式刷新 异步get和页面位置被重置。如果我编辑下面某处找到的编辑, 当视图重置时,我必须向下滚动才能看到编辑模式下的实际注释。如何让页面保持静止,不要混淆用户?

这是我用来执行GET的功能:

function redirectToEditComment(url, container, commentID) {
   $.get(url, { id: commentID }, function (data) {
      container.html(data);        
   });
}

这是我用来触发编辑的链接:

<a href="#" onclick="redirectToEditComment(editCommentURL, $('#@containerId'), @comment.Id)">Edit</a>

这就是我为注释div设置id的方式:

@foreach (var comment in Model.Comments)
{
   containerId = "commentsContainer_" + i++;

P.S:问题是当我执行jQuery GET时页面会滚动回顶部。如何防止滚动?

3 个答案:

答案 0 :(得分:0)

问题是你没有设置event.preventDefault();在链接标记中;

<a href="#">...</a>

请参阅此文档: http://api.jquery.com/event.preventDefault/

答案 1 :(得分:0)

问题出在您的锚标记中,您设置了href =“#”,它将您带到页面顶部。写下href="javascript:void(0);"href="javascript:;"

无需从您的javascript方法返回false。

答案 2 :(得分:-1)

我在SO上找到了答案:在jQuery get

之后返回false
<a href="#" onclick="redirectToEditComment(editCommentURL, $('#@containerId'), @comment.Id); return false;">Edit</a>