1

在新页面上继续 PartialView 渲染 所以在修复上述问题后,我添加了分页。

我处理部分视图和分页的控制器方法是

public ActionResult CreateAdmin(string sortOrder, int? page)
    {
        int pageSize = 10;
        int pageNumber = 1;
        if (page != null)
            pageNumber = Convert.ToInt32(page);

        var result = SortResult(sortOrder);

        return PartialView("AdminSearchResult", result.ToPagedList(pageNumber, pageSize));
    }

在我的部分观点中,我正在路过

@model PagedList.IPagedList<MyApplication.Models.Administration>

用于动态渲染局部视图的 jquery 是

<script type="text/javascript">
$(document).ready(function (e) {
    $("#SearchResultbtn").click(function (e) {
        e.preventDefault();
        $("#searchResult").load('@Url.Action("AdminSearchResult", "Administration")');
    });
});    

我的视图只是一个表格,如下所示

<table class="searchResult" border="1" width="100%">
    <thead>
        <tr>
            <th>
            </th>
            <th>
                @Html.ActionLink("Last Name", "AdminSearchResult", new { sortOrder = ViewBag.LastNameSortParm, currentFilter = ViewBag.CurrentFilter, @class = "linkClicked" })
            </th>
            <th>
                Middle Name
            </th>
            <th>
                @Html.ActionLink("First Name", "AdminSearchResult", new { sortOrder = ViewBag.FirstNameSortParm, currentFilter = ViewBag.CurrentFilter })
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr class="parent">                    
                <td>
                    @item.LastName
                </td>
                <td>
                    @item.MiddleName
                </td>
                <td>
                    @item.FirstName
                </td>
            </tr>
        }
    </tbody>        
</table>

我的分页和排序工作正常。问题是,当我单击“名字”的 ActionLink 或任何听者对整个部分视图进行排序时,会在新页面中呈现。

我的猜测是 jquery 需要更新,但如何。

4

1 回答 1

1

从你提到的行为来看,我认为你只需要这样的东西:

@Ajax.ActionLink("First Name", "AdminSearchResult", new { sortOrder = ViewBag.FirstNameSortParm, currentFilter = ViewBag.CurrentFilter }, new AjaxOptions { UpdateTargetId = "searchResult" }, null)

基本上是做页面的部分更新,而不是整页刷新?

要在 MVC 中成功使用 ajax 方法,您需要执行以下操作。将此键添加到 web.config 中的 appsettings:

  <appSettings>
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

以及包含不显眼的 ajax 脚本:

<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
于 2013-04-09T18:08:36.110 回答