0

この問題は、カテゴリを選択しても何も表示されません。アイテムなし、ページネーションなし。

PagedList で Troy Goodes の例に従いましたが、動作しません。jQuery は 3 つの部分ビュー (category、items.descrip) をロードし、アイテムの結果をページ分割しようとしています。

これは私のコントローラーです

public ActionResult Partial( int id, int? page) 
    {

        var Uid = WebSecurity.GetUserId(User.Identity.Name);
        var pageNumber = page ?? 1;

        var query = from i in db.Items
                    where i.user_id == Uid && i.catId == id
                    select i;
        var results = query;
        var onePageOfProducts = results.ToPagedList(pageNumber, 10);

         return PartialView("_Partial1", onePageOfProducts);

    }

意見

@using IPagedList;
@using PagedList.Mvc;

@*@foreach (var item in Model)
{*@


@foreach(var item in ViewBag.OnePageOfProducts){



    <tr data-id="@item.ID">
        <td data-id="@item.ID">@item.item_name</td>
        <td></td>
    </tr>

 }
 @Html.PagedListPager( (IPagedList)ViewBag.OnePageOfProducts, 
  page => Url.Action("/Item/Partial", new { page }) )

jQuery

    $('#categories').load("/Category/GetCats", function () {

            $(this).on("click","tr", function () {
                var requestpage = "/Item/Partial?id=" + $(this).data("id");
                //alert(requestpage);   //debug

                $.get(requestpage, function (result) {
                    $("#results").html(result);

                });
            });
        });

        $('#results').load("/Item/Partial", function () {
            var buttons =  
    $("<button class=\"removeBtn\">Remove</button>
    <button class=\"removeBtn\">Edit</button>");

            $(this).on("click", "tr", function () {
                var requestpage = "/Item/FullInfoPartial?id=" + $(this).data("id");
                buttons.appendTo(this);
                //alert(requestpage);  //debug
                $.get(requestpage, function (result) {
                    $("#descrip").html(result);
                });
            });
        });
4

1 に答える 1

1

詳細な回答を得るには、受け取った問題を確認する必要があります。正確に何が問題なのかについて言及していないためです。とにかく、あなたのコードにはすでにいくつかの問題があります。

  • を呼び出しViewBag.OnePageOfProductsていますが、ActionResult でこの ViewBag を作成していません。したがって、次のように変更します。

    public ActionResult Partial( int id, int? page) 
    {
    
        var Uid = WebSecurity.GetUserId(User.Identity.Name);
        var pageNumber = page ?? 1;
    
        var query = from i in db.Items
                    where i.user_id == Uid && i.catId == id
                    select i;
        var results = query;
        var onePageOfProducts = results.ToPagedList(pageNumber, 10);
    
         ViewBag.OnePageOfProducts = onePageOfProducts; //* You've fogotten to add this line
    
         return PartialView("_Partial1", onePageOfProducts);
    
    }
    
  • id パラメータを使用していますが、@Html.PagedListPager ヘルパーでそれを忘れています。定義しないと、PagedList は 2 ページ目以降の結果を失います。したがって、次のように変更します。

    @Html.PagedListPager( (IPagedList)ViewBag.OnePageOfProducts, 
    page => Url.Action("/Item/Partial", new { page = page, id = item.ID})
    
于 2013-08-18T09:00:23.650 に答える