如何在使用 HTML 时保持滚动位置.MVC Asp.Net 中的动作链接



我有以下代码:

<a href="@Url.Action("Approve", new {id = item.Id})">Approve</a>

这将调用我的控制器中的 Action 方法更新记录的审批状态,然后:

return RedirectToAction("Index");

正如预期的那样,页面始终刷新到顶部。有没有办法将滚动位置保持在我单击超链接的位置。我检查过类似的帖子,但我看到的帖子指的是表格。最终我将使用 JQuery/Ajax。但是,目前我想看看是否有一个简单的方法可以像HTML属性一样使用。

非常感谢。

您可以使用

哈希表示法命名锚标记并在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,但是规则适用于早期 HTML 版本的ids命名)。 如有疑问,请在 HTML 中使用之前添加"aid-"(批准 ID)等前缀。

否则,就像您已经确定的那样,最好的办法是使用 AJAX 调用进行批准。 这样,您就可以准确地停留在页面上的位置。

最新更新