weixin_33691700 2014-12-10 20:50 采纳率: 0%
浏览 35

为什么我的页脚出现两次

<div class="navbar-collapse collapse">
  <ul class="nav navbar-nav">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>
      @Ajax.ActionLink("Imagenes List", "Images", "Home", new { page = 0 }, new AjaxOptions()
      {
        HttpMethod = "GET", // HttpMethod to use, GET or POST
        UpdateTargetId = "divImage", // ID of the HTML element to update
        InsertionMode = InsertionMode.Replace // Replace the existing contents
      })
    </li>
  </ul>
</div>

I have two links in my _Layout, @Html.ActionLink and @Ajax.ActionLink

A div container for ajax

<div id="divImage" class="container body-content">
  @RenderBody()
  <hr />
</div>

And a footer.

<footer class="container body-content">
  <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
</footer>`

My problem is with @Ajax.ActionLink the footer appear twice when @Html.ActionLink only appear once.

I fixed changing the return for "Images" action to return PartialView() or setting Layout = null;

But I'm wondering why only Ajax need this fix. And is my solution ok?

My guess is maybe something in the css, but not sure what look for.

  • 写回答

2条回答 默认 最新

  • weixin_33709590 2014-12-10 21:29
    关注

    It's only required when using AJAX because AJAX is the only situation where you're inserting content into an already rendered view. The first view render got the entire layout, and then the AJAX call inserts the layout again.

    In the first scenario. Just the main view is rendered, so only one layout.

    评论

报告相同问题?