【问题标题】:How to maintain scroll position when using HTML.ActionLink in MVC Asp.Net?在 MVC Asp.Net 中使用 HTML.ActionLink 时如何保持滚动位置?
【发布时间】:2014-01-15 10:47:29
【问题描述】:

我有以下代码:

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

这会在我的控制器中调用一个 Action 方法来更新记录的批准状态,然后:

return RedirectToAction("Index");

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

非常感谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    您可以命名锚标记并使用哈希表示法引用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 调用来进行批准。这样您就可以准确地停留在页面上的位置。

    【讨论】:

    • 应该是“name”还是“id”?
    • 我认为它需要是“名字”。
    • 实际上可能是id 或两者兼而有之。如果您的id 是动态的,那么您只需将其插入name 属性中,然后类似地在action 方法中构造哈希位。我会更新答案。
    猜你喜欢
    • 2010-10-03
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多