传递到字典中的模型项的类型是' System.Collections.Generic.List`,

时间:2014-04-01 14:43:13

标签: asp.net-mvc asp.net-mvc-4 razor

我正在学习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

1 个答案:

答案 0 :(得分:2)

我假设您的代码已到达您的操作的else部分,当您的视图期望有List<T>个员工时,该部分仅返回PagedList<T>个员工。

您可以创建并返回一个接受List<T>员工的新视图,也可以更改代码以返回.ToPagedList