Abrar Kazi Ответов: 1

Модель становится пустой на pagedlist 2-я страница нажмите кнопку


Модель:
public class Cedim
    {
        public float PEGID { get; set; }
        public float PIGID { get; set; }
        public float Type { get; set; }
    }


Смотреть:

@model PagedList.IPagedList<AvibuyerExcelUpload.Models.Cegedim>
@using PagedList.Mvc;

<link href="~/Content/PagedList.css" rel="stylesheet" />
<h2>Upload File</h2>

@using (Html.BeginForm("Index", "Upload", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    <div class="form-group">
        <input type="file" id="dataFile" name="upload" />
    </div>

    <div class="form-group">
        <input type="submit" name="Command" value="Upload Cegedim" class="btn btn-default" />
    </div>

    if (Model != null)
    {
        <table>
            <thead>
                <tr>
                    <th>PIGID</th> &nbsp;&nbsp;
                    <th>Type</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                      <td>@Html.DisplayFor(x => item.PIGID)</td>
                        <td>@Html.DisplayFor(x => item.Type)</td>
                        
                    </tr>
                }
            </tbody>
        </table>    
    }



if (Model.PageCount > 1)
{
    <div class="pager">
        @Html.PagedListPager(Model, page => Url.Action("Index", new { page,currentFilter=ViewBag.CurrentFilter, sortOrder = ViewBag.CurrentFilter}))
        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    </div>
}

}


Контроллер:

public ActionResult Index(int page=1)
       {
           if (Session["Final"] == null)
           {

               List<Cegedim> listCegedim = new List<Cegedim>();
               listCegedim = new List<Models.Cegedim>();

               return View(listCegedim.ToPagedList(1,50));
           }
           else
           {

               DataTable dtCegedim = (DataTable)Session["Final"];

               int SkipRows = (page-1) * 50;

               DataTable newDtCegedim = new DataTable();
               newDtCegedim = dtCegedim.AsEnumerable().Skip(SkipRows).Take(50).CopyToDataTable();

               List<Cegedim> myList = new List<Cegedim>();

               myList = (from rw in newDtCegedim.AsEnumerable()
                         select new Cegedim()
                         {
                             PIGID = Convert.ToInt32(rw["PIGID"]),
                             Type = Convert.ToInt32(rw["Type"])
                         }).ToList();



               return View(myList.ToPagedList(page,50));
           }
       }


Что я уже пробовал:

Когда я нажимаю 2-ю страницу, модель заполняется контроллером и передается на просмотр, но при просмотре она становится пустой.

1 Ответов

Рейтинг:
2

Sunil Thakur

http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

Проверив это, вы получите подробную информацию.


Abrar Kazi

Я уже проверил это и сделал точно то же самое, но проблема все еще существует. Я не знаю, где я ошибаюсь