C# ASP.NET MVC-传递的模型项是泛型.List,但需要类型PagedList
我对所有这些都不熟悉,在App.net 4.7.2 MVC应用程序中进行分页时遇到了问题。我得到以下错误: 传入字典的模型项的类型为“System.Collections.Generic.ListC# ASP.NET MVC-传递的模型项是泛型.List,但需要类型PagedList,c#,asp.net-mvc,windows,C#,Asp.net Mvc,Windows,我对所有这些都不熟悉,在App.net 4.7.2 MVC应用程序中进行分页时遇到了问题。我得到以下错误: 传入字典的模型项的类型为“System.Collections.Generic.List1[AIAR.Models.PIAModel]”,但此字典需要“PagedList.IPagedList1[AIAR.Models.PIAModel]”类型的模型项 我想我理解这个问题,因为我在控制器中使用了一个通用列表,但我不知道如何解决它。我已经在谷歌搜索了一段时间了,就是想不出来。任何帮助都将不胜
1[AIAR.Models.PIAModel]”,但此字典需要“PagedList.IPagedList
1[AIAR.Models.PIAModel]”类型的模型项
我想我理解这个问题,因为我在控制器中使用了一个通用列表,但我不知道如何解决它。我已经在谷歌搜索了一段时间了,就是想不出来。任何帮助都将不胜感激。如果我还需要提供什么,请告诉我
控制器部分:
public ActionResult ViewPIAS(string searchBy, string search,int? page)
{
ViewBag.Message = "PIA List";
var data = LoadPIAS();
List<PIAModel> PIAS = new List<PIAModel>();
foreach (var row in data)
{
PIAS.Add(new PIAModel
{
Id = row.Id,
AssetName = row.AssetName,
AssetDescription = row.AssetDescription,
Unit = row.Unit,
InformationAssetCustodian = row.InformationAssetCustodian
});
}
if (searchBy == "AssetName")
{
return View(PIAS.Where(x => x.AssetName.StartsWith(search)).ToPagedList(page ?? 1, 3).ToList());
}
else if(searchBy == "AssetDescription")
{
return View(PIAS.Where(x => x.AssetDescription.StartsWith(search)).ToPagedList(page ?? 1, 3).ToList());
}
else
return View(PIAS);
}
谢谢你 解决方案是在控制器和视图中使用IList界面,问候语解决方案是在控制器和视图中使用IList界面,问候语设法在前几天使其正常工作
int recordsPerPage = 10;
var list = PIAS.ToList().ToPagedList(page, recordsPerPage);
if (searchBy == "AssetName")
{
var assetnamesearch = list.Where(x => x.AssetName.Contains(search));
return View(assetnamesearch.ToList().ToPagedList(page, recordsPerPage));
}
else
return View(list);
}
谢谢所有的回复 前几天我设法让这一切顺利进行,伙计们
int recordsPerPage = 10;
var list = PIAS.ToList().ToPagedList(page, recordsPerPage);
if (searchBy == "AssetName")
{
var assetnamesearch = list.Where(x => x.AssetName.Contains(search));
return View(assetnamesearch.ToList().ToPagedList(page, recordsPerPage));
}
else
return View(list);
}
谢谢所有的回复 从.ToPagedList(…).ToList()中删除.ToList()调用?我认为如果执行else分支,就会发生这种情况,您应该返回View(PIAS.ToPagedList(,);并应删除其他分支的所有.toList()语句谢谢您的评论。我删除了.ToList()调用,并在else语句中添加了return视图(谢谢)。仍然遇到相同的问题。是否从.ToPagedList(…).ToList()中删除.ToList()调用?我认为如果执行了else分支,则会发生这种情况,您应该返回View(PIAS.ToPagedList(,);并应删除其他分支的所有.toList()语句谢谢您的评论。我删除了.ToList()调用,并在else语句中添加了return视图(谢谢)。仍然遇到同样的问题。
int recordsPerPage = 10;
var list = PIAS.ToList().ToPagedList(page, recordsPerPage);
if (searchBy == "AssetName")
{
var assetnamesearch = list.Where(x => x.AssetName.Contains(search));
return View(assetnamesearch.ToList().ToPagedList(page, recordsPerPage));
}
else
return View(list);
}