Ajax误解,还是错误?

时间:2014-08-19 12:20:00

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

请您解释一下我应该如何正确使用Ajax。 我在Asp.Net MVC中有一个简单的例子:

这是我的布局视图

<html>
<head>
//scripts
</head>
<body>
    <div id="header">
        <div class="logo">
            <img id="LogoImg" src="http://www.ruralcomshow.com/wpontent/uploads/2014/06/Midwest-Data-Center-Logo-175x75.png" /> 
        </div>
    </div>
    <div class="wrapper">
        <div class="left-side">
           //some navigation
        </div>
        <div id="right-side">
            @RenderBody()

        </div>
    </div>

    <div id="footer">
        <div class="clearfix">
        //some footer
        </div>
    </div>
</body>
</html>

这是我的控制者:

public class HomeController : Controller
{
  public PartialViewResult Ajax()
  {
    return PartialView();
  }

  public ActionResult Index()
  {
    return View();
  }
}

这是Ajax局部视图:

 <h2>This is how it's done</h2>
@Html.ActionLink("back :C","Index","Home")

这是索引视图:

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@Ajax.ActionLink("Go, go Ajax!", "Ajax", "Home", new AjaxOptions { UpdateTargetId = "right-side", InsertionMode = InsertionMode.Replace})

所以,据我所知,当我点击Ajax ActionLink时,我的整个页面不应该rerender,唯一应该改变的是div with id "right-side"?所以问题是整个页面总是被重新渲染。

我做错了吗?或者这是我理解的问题?

1 个答案:

答案 0 :(得分:0)

在页面底部包含jquery和unobtrusive-ajax,如下所示: -

</footer>
@Scripts.Render("~/bundles/jquery")
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
@RenderSection("scripts", required: false)
</body>
</html>