Asp Mvc使用Ajax返回部分视图不起作用

Pat*_*ins 5 c# asp.net asp.net-mvc-3

我在这里使用MVC3(Razor)和Paging开源代码.按下具有此代码的Controller按钮时的代码调用:

  [Authorize(Roles = SystemConstants.ROLE_ADMINISTRATOR)]
  public ActionResult ListUsers(int? page)
  {
     int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
     var products = userToDisplay.ToPagedList(currentPageIndex, 5);
     return PartialView("ListUsersTable", products); 

  }
Run Code Online (Sandbox Code Playgroud)

这应该返回一个名为"ListUsersTable"的PartialView.它确实返回"ListUsersTable"但作为整个页面而不是替换DIV.

以下是视图中的代码:

   <div id="listUserToBeUpdated">
       @Html.Partial("ListUsersTable", Model)
   </div>
Run Code Online (Sandbox Code Playgroud)

ListUsersTable中用于执行Ajax调用的按钮如下所示:

   <div class="pager">
      @Ajax.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, "ListUsers", new AjaxOptions { UpdateTargetId = "listUserToBeUpdated" })
   </div>
Run Code Online (Sandbox Code Playgroud)

知道代码为什么不替换DIV而是返回页面中的代码?

fel*_*xmm 6

你引用了哪些JS文件?在ASP.NET MVC3中,他们将AJAX功能从MicrosoftMvcAjax.js更改为jquery.unobtrusive-ajax.js,因此如果您还没有这样做,请参考后者.

还要验证web.config文件中的"UnobtrusiveJavaScriptEnabled"键是否设置为"true"

  • 尝试添加对"jquery.unobtrusive-ajax.js"文件的引用. (2认同)