返回View with Model并转到特定的锚标记

TTT*_*TTT 12 asp.net-mvc

我有一个带有多个锚标签的视图.有没有办法使用模型对象返回视图并转到视图中的特定锚标记?

例如,我的View有这样的锚点:

   <a name="Section1"></a>
   ...
   <a name="Section2"></a>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用以下方法击中这些锚点:

return Redirect(Url.RouteUrl(new { controller = "myController", action = "myAction" }) + "#Section1");
Run Code Online (Sandbox Code Playgroud)

但我不认为我可以使用重定向,因为我需要发送一个模型:

return View("myAction", model); // how to go to anchor?
Run Code Online (Sandbox Code Playgroud)

ali*_*ari 13

您可以在视图模型中发送内容以查看并使用javascript滚动到该锚点.例如,假设您有一个名为Section的属性.您可以在控制器中设置它并在视图中使用此javascript代码滚动到该锚点:

$(document).ready(function () {
    var anchor = document.getElementById('@Model.Section');
    anchor.scrollIntoView(true);
});
Run Code Online (Sandbox Code Playgroud)


Nic*_*sky 5

首先,我们需要将 achor 传递给我们的视图:

控制器:

    ViewBag.Section = "register"; //#register         
    return View();
Run Code Online (Sandbox Code Playgroud)

看法:

@if (ViewBag.Section!=null)
{
    <script>
        $(function () {              
                window.location.hash = '#@ViewBag.Section';
        });
    </script>
}
Run Code Online (Sandbox Code Playgroud)

现在您可以使用“如何滚动到锚点”答案/sf/answers/1113452091/