我对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时页面会滚动回顶部。如何防止滚动?
答案 0 :(得分:0)
问题是你没有设置event.preventDefault();在链接标记中;
<a href="#">...</a>
答案 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>