javascript - RenderBody 未渲染我的 View

标签 javascript jquery asp.net-mvc razor

您好,我正在开发一个带有 boostrap 模板的网站。我想要的是,当用户单击链接时,它会调用 Controller 函数返回 View 并将焦点转移到正文部分。

为此,我使用 _Layout 和渲染主体函数

<section id="bodySection">
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)

还有一个调用函数并聚焦于正文的 href

  <a href="#bodySection" onclick="myFunction()">Education</a>

我的函数在 onclick 上触发:

<script type="text/javascript">
    function myFunction() {
        //alert("I am an alert box!");
        $.post("@Url.Action("Education", "Education")");
        }
</script>

还有我的 Controller

    public ActionResult Education()
    {
       {...........}
        return View();
    }

当我按下按钮时,焦点转到正文部分, Controller 被调用,但正文部分仍保留旧 View 。如果我检查页面,我不会收到任何错误。 有人可以告诉我我的代码发生了什么吗?

最佳答案

您的代码将不起作用,因为该标记只是一个 anchor 链接,它只会将页面滚动到 #bodySection 所在的位置,并执行 $.post 到返回特定结果的服务,但不会重定向到新页面。

我会将您的链接更改为:

<a href="@Url.Action("Education", "Education")">Education</a>

然后将以下脚本添加到 View 中,以使页面每次加载时自动平滑滚动到 anchor :

<script type="text/javascript">
    $("html,body").animate({
        scrollTop: $("#bodySection").offset().top
    }, 1000);
</script>

关于javascript - RenderBody 未渲染我的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36764006/

相关文章:

javascript - 打开引导模式时,文本区域没有获得焦点

javascript - 如何使用 Javascript 确认浏览器窗口已打开?

jquery - 如何在 jquery.dialog 中显示验证码

jquery - 无法在 jQuery 中切换背景图像

c# - 在不同的 Mvc 解决方案中使用相同的代码

c# - 在 MVC 区域中时出现导航问题

javascript - 我的图像幻灯片放映代码有什么问题?

javascript - select2 ajax 不工作

c# - ASP.NET MVC 发布不适用于弹出窗口

javascript - 使页面剥离效果更好