RenderBody没有渲染我的视图

时间:2016-04-21 08:32:09

标签: javascript jquery asp.net-mvc razor

您好我正在使用boostrap模板工作。我想要的是当用户点击一个链接时,它会调用一个控制器函数返回一个视图并将焦点转移到body部分。

要做到这一点,我有_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>

我的控制器

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

当我按下按钮时,焦点转到主体部分,控制器被调用,但是主体部分保留旧视图。如果我检查页面,我不会得到任何错误。 有人可以告诉我我的代码是怎么回事吗?

1 个答案:

答案 0 :(得分:0)

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

我会将您的链接更改为:

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

然后将以下脚本添加到视图中,以便每次加载时页面自动平滑滚动到锚点:

select * from table