c# - 错误 : "Cannot implicitly convert type"

标签 c# html asp.net css asp.net-mvc

我正在做一个元素,我对转换类型有疑问。我想为我的元素创建简单的搜索,但它一直在询问 Ienumerable 类型,老实说我不明白。请帮忙。

问题:

Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'PagedList.IPagedList'. An explicit conversion exists (are you missing a cast?) 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);
}

最佳答案

同时 products确实是 IPagedList<Product_List> 类型, 调用 .Where()IPagedList<Product_List> 的实例上返回一个IEnumerable<Product_List> ,不能隐式转换。请注意您如何在此处执行转换:

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);

关于c# - 错误 : "Cannot implicitly convert type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22382601/

相关文章:

c# - NHibernate:选择元素包中有条目的项目

php - 如何验证表单是否为空? PHP 或 JS

asp.net - 使用 App Insights 将关联 ID 添加到自动生成的遥测数据

asp.net - 使用 IIS8.5 的浏览器缓存,我做得对吗?

c# - 反转颠倒位图数据的最佳方法

c# - Array.Clear 实际上做了什么?

c# - 如何在 NUnit 中编写需要括号的流畅约束

jquery - 具有响应宽度和固定高度的 slider

javascript - 将表格发布到同一站点

asp.net - AJAX可以调用外部webservices函数吗