我正在学习MVC中的分页 在索引视图中我有搜索按钮,它应显示结果Paged Wise
家庭控制器中的索引方法......
public ActionResult Index(string searchBy, string search ,int? Page)
{
if (searchBy == "Gender")
{
return View(db.Employees.Where(x => x.Gender == search || search == null).ToList().ToPagedList(Page??1,3)) ;
}
else
{
return View(db.Employees.Where(x => x.FUllName == search || search == null).ToList());
}
}
和索引视图
@using PagedList;
@using PagedList.Mvc;
@model IPagedList<_SearchDemo.Models.Employee>
<p>
@using (Html.BeginForm("Index","Home",FormMethod.Get))
{
<b>SearchBy</b> @Html.RadioButton("searchBy", "Name", true)
<text>Name</text>
@Html.RadioButton("searchBy", "Gender") <text>Gender</text>
<br />
@Html.TextBox("search") <input type="submit" value="search" />
}
</p>
<table border="1">
<tr>
<th>
@Html.DisplayNameFor(model => model.First().FUllName)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.FUllName)
</td>
</tr>
}
</table>
在重新加载索引页面时,它会出错...
传递到字典中的模型项是类型的 &#39; {System.Collections.Generic.List {1}} 1
答案 0 :(得分:2)
我假设您的代码已到达您的操作的else
部分,当您的视图期望有List<T>
个员工时,该部分仅返回PagedList<T>
个员工。
您可以创建并返回一个接受List<T>
员工的新视图,也可以更改代码以返回.ToPagedList