2017-11-12 9 views
0

私のIndexページに@model PagedList.IPagedList<TestProject.Models.Test>を入力すると、ASP.NET MVCプロジェクトでページネーションを実装したいと考えています。ASP.NET MVC TestProjectアプリケーションでページネーションを実装したい

Compiler Error Message: CS1061: 'IPagedList' does not contain a definition for 'FName' and no extension method 'FName' accepting a first argument of type 'IPagedList' could be found

そして、私は@model IEnumerable<TestProject.Models.Test>を入れたとき、それがエラーを以下与える:

Argument 2: cannot convert from 'System.Collections.Generic.IEnumerable<TestProject.Models.Test>' to 'PagedList.IPagedList'

@Html.PagedListPager(Model, pageNumber => Url.Action("Index", new { pageNumber }) 

マイHome Controllerは、次の値を返します。

public ActionResult Index(int? pageNumber) 
{ 
    TestHandle testHandle = new TestHandle(); 
    ModelState.Clear(); 
    return View(testHandle.GetAll().ToList().ToPagedList(pageNumber ?? 1, 3)); 
} 

GetAll関数は、リストをretruns:

public List<Test> GetAll() 
{ 
    clsUtilities cUtils = new clsUtilities(); 
    DataSet ds; 
    List<Test> studentlist = new List<Test>(); 
    string sSQL; 
    sSQL = "exec AllPhone"; 
    ds=cUtils.GetDataSet(sSQL); 
    DataTable dt = ds.Tables[0]; 
    foreach (DataRow dr in dt.Rows) 
    { 
     studentlist.Add(
      new Test 
      { 
       Id = Convert.ToInt32(dr["Id"]), 
       FName = Convert.ToString(dr["FName"]), 
       LName = Convert.ToString(dr["LName"]), 
       Address = Convert.ToString(dr["Address"]) 
      }); 
    } 
    return studentlist; 
} 

私をご案内ください。私は多くの研究をしましたが運はありませんでした。だから私はこのエラーを掲載しています。私が間違っているところを私に示唆してください。どんな助けも高く評価されます。

+0

ページネーションを実装する場合。 Bootbox Pluginをページングのためにチェックアウトすると、ソートのような他の機能も提供されます。それは本当に使いやすいです。 –

+0

@BigSmile、Bootboxのリンクを教えてください。とにかく、私はMVCプロジェクトでページネーションを使用しようとしています。 – Raj

答えて

1

DisplayNameFor()は、コレクションプロパティとして使用する場合にのみIEnumerable<T>を受け入れます。お使いのモデルがIPagedList<T>ある場合は、このコレクションが空の場合でも動作します

@Html.DisplayNameFor(m => m.FirstOrDefault().FName) 

注意を使用することができます。

GETメソッドでModelState.Clear();を呼び出すのは無意味で、削除することができます。

+0

ありがとうございます。それは今私のために働いた。もう一度ありがとうございます。 – Raj

関連する問題