我有以下代码:
<a href="@Url.Action("Approve", new {id = item.Id})">Approve</a>
这会调用我的控制器中的Action方法更新记录的批准状态,然后:
return RedirectToAction("Index");
正如预期的那样,页面总是刷新到顶部。有没有办法将滚动位置保持在我单击超链接的位置。我检查了类似的帖子,但我看过的那些帖子提到了表格。最终我将使用JQuery / Ajax。但是目前我想看看是否有一个可以像HTML属性一样使用的简单方法。
非常感谢。
答案 0 :(得分:2)
您可以使用哈希表示法命名锚标记并引用href
中的名称:
<a href="@Url.Action("Approve", new { id = item.Id })" id="@( item.Id )" name="@( item.Id )">Approve</a>
然后在你的行动方法中:
string redirectUrl =
string.Format(
"{0}#{1}",
Url.Action("Index"),
id);
return new RedirectResult(redirectUrl);
请确保您的id
是值HTML id
(HTML5中几乎任何内容都可以是有效的id
,但规则适用于ids
的早期命名HTML版本)。如果有疑问,请在使用HTML之前为其添加“aid-”(批准ID)等内容。
否则,就像您已经确定的那样,最好的办法是使用AJAX调用进行批准。通过这种方式,您可以准确地保持在页面上的位置。