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>

ページングとソートは正常に機能しています。問題は、「First Name」の 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 に答える