C# 错误:";无法隐式转换类型";
我正在做一个项目,我有一个关于转换类型的问题。我想为我的项目创建一个简单的搜索,但它一直在询问C# 错误:";无法隐式转换类型";,c#,html,asp.net,css,asp.net-mvc,C#,Html,Asp.net,Css,Asp.net Mvc,我正在做一个项目,我有一个关于转换类型的问题。我想为我的项目创建一个简单的搜索,但它一直在询问Ienumerable类型,老实说,我不明白。请帮忙 问题是: 错误1无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“PagedList.IPagedList”。存在显式转换(是否缺少转换?)C:\Users\Asus\Documents\Visual Studio 2012\Projects\Nordstromapp\Nordstromapp\Co
Ienumerable
类型,老实说,我不明白。请帮忙
问题是:
错误1无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“PagedList.IPagedList”。存在显式转换(是否缺少转换?)C:\Users\Asus\Documents\Visual Studio 2012\Projects\Nordstromapp\Nordstromapp\Controllers\ProductController.cs 38 24 Nordstromapp
我的代码:
{
NordstromEntities _db;
public ProductController()
{
_db = new NordstromEntities();
}
//
// GET: /Product/
public ActionResult Index(string sortOrder, string CurrentSort, int? page, string searchString)
{
int pageSize = 10;
int pageIndex = 1;
pageIndex = page.HasValue ? Convert.ToInt32(page) : 1;
ViewBag.CurrentSort = sortOrder;
sortOrder = String.IsNullOrEmpty(sortOrder) ? "ID" : sortOrder;
IPagedList<Product_list> products = null;
if (!String.IsNullOrEmpty(searchString))
{
products = products.Where(m => m.ID.ToUpper().Contains(searchString.ToUpper())
|| m.Product_name.ToUpper().Contains(searchString.ToUpper()));
}
switch (sortOrder)
{
case "ID":
if(sortOrder.Equals(CurrentSort))
products = _db.Product_list.OrderByDescending
(m => m.ID).ToPagedList(pageIndex, pageSize);
else
products = _db.Product_list.OrderBy
(m => m.ID).ToPagedList(pageIndex, pageSize);
break;
case "Product_name":
if (sortOrder.Equals(CurrentSort))
products = _db.Product_list.OrderByDescending
(m => m.Product_name).ToPagedList(pageIndex, pageSize);
else
products = _db.Product_list.OrderBy
(m => m.Product_name).ToPagedList(pageIndex, pageSize);
break;
case "Product_category":
if (sortOrder.Equals(CurrentSort))
products = _db.Product_list.OrderByDescending
(m => m.Product_category).ToPagedList(pageIndex, pageSize);
else
products = _db.Product_list.OrderBy
(m => m.Product_category).ToPagedList(pageIndex, pageSize);
break;
case "Price":
if (sortOrder.Equals(CurrentSort))
products = _db.Product_list.OrderByDescending
(m => m.Price).ToPagedList(pageIndex, pageSize);
else
products = _db.Product_list.OrderBy
(m => m.Price).ToPagedList(pageIndex, pageSize);
break;
}
return View(products);
}
{
NordstromEntities_db;
公共产品控制员()
{
_db=新的NordstromEntities();
}
//
//获取:/Product/
公共操作结果索引(字符串排序器、字符串当前排序、整型页面、字符串搜索字符串)
{
int pageSize=10;
int pageIndex=1;
pageIndex=page.HasValue?将.ToInt32转换为(第页):1;
ViewBag.CurrentSort=排序器;
sortOrder=String.IsNullOrEmpty(sortOrder)?“ID”:sortOrder;
IPagedList products=null;
如果(!String.IsNullOrEmpty(searchString))
{
products=products.Where(m=>m.ID.ToUpper().Contains(searchString.ToUpper())
||m.Product_name.ToUpper().Contains(searchString.ToUpper());
}
开关(分拣机)
{
案例“ID”:
if(sortOrder.Equals(CurrentSort))
products=\u db.Product\u list.OrderByDescending
ToPagedList(页面索引,页面大小);
其他的
产品=\u db.Product\u list.OrderBy
ToPagedList(页面索引,页面大小);
打破
案例“产品名称”:
if(sortOrder.Equals(CurrentSort))
products=\u db.Product\u list.OrderByDescending
(m=>m.Product_name).ToPagedList(页面索引,页面大小);
其他的
产品=\u db.Product\u list.OrderBy
(m=>m.Product_name).ToPagedList(页面索引,页面大小);
打破
案例“产品类别”:
if(sortOrder.Equals(CurrentSort))
products=\u db.Product\u list.OrderByDescending
(m=>m.Product_category).ToPagedList(页面索引、页面大小);
其他的
产品=\u db.Product\u list.OrderBy
(m=>m.Product_category).ToPagedList(页面索引、页面大小);
打破
案例“价格”:
if(sortOrder.Equals(CurrentSort))
products=\u db.Product\u list.OrderByDescending
(m=>m.Price).ToPagedList(页面索引,页面大小);
其他的
产品=\u db.Product\u list.OrderBy
(m=>m.Price).ToPagedList(页面索引,页面大小);
打破
}
返回视图(产品);
}
虽然产品
确实属于IPagedList
类型,但对IPagedList
实例调用.Where()
会返回一个IEnumerable
,无法隐式转换。请注意此处执行转换的方式:
products = _db.Product_list.OrderByDescending(m => m.ID)
.ToPagedList(pageIndex, pageSize);
您只需在调用后执行相同的转换即可。Where()
调用:
products = products.Where(m => m.ID.ToUpper().Contains(searchString.ToUpper()) ||
m.Product_name.ToUpper().Contains(searchString.ToUpper()))
.ToPagedList(pageIndex, pageSize);
在哪一行出现此错误?请先调试代码。如果,则在第一行之后:缺少
。ToPagedList()