使用泛型类型&#39; PagedList.StaticPagedList <t>&#39;需要1个类型参数

时间:2017-01-10 18:50:23

标签: asp.net-mvc asp.net-identity

我正在使用Asp.net MVC处理用户角色。我在管理部门工作时遇到困难。我已经提到了上面的一个问题,第二个问题是类似的使用泛型类型&#39; System.Collections.Generic.List&#39;需要1个类型参数

这是我的代码。

public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int? page)
        {
            try
            {
                int intPage = 1;
                int intPageSize = 5;
                int intTotalPageCount = 0;
                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else
                {
                    if (currentFilter != null)
                    {
                        searchStringUserNameOrEmail = currentFilter;
                        intPage = page ?? 1;
                    }
                    else
                    {
                        searchStringUserNameOrEmail = "";
                        intPage = page ?? 1;
                    }
                }
                ViewBag.CurrentFilter = searchStringUserNameOrEmail;
                List col_UserDTO = new List();
                int intSkip = (intPage - 1) * intPageSize;
                intTotalPageCount = UserManager.Users
                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                    .Count();
                var result = UserManager.Users
                    .Where(x => x.UserName.Contains(searchStringUserNameOrEmail))
                    .OrderBy(x => x.UserName)
                    .Skip(intSkip)
                    .Take(intPageSize)
                    .ToList();
                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();
                    objUserDTO.UserName = item.UserName;
                    objUserDTO.Email = item.Email;
                    objUserDTO.LockoutEndDateUtc = item.LockoutEndDateUtc;
                    col_UserDTO.Add(objUserDTO);
                }
                // Set the number of pages
// Error appears here
                var _UserDTOAsIPagedList =
                    new StaticPagedList
                    (
                        col_UserDTO, intPage, intPageSize, intTotalPageCount
                        );
                return View(_UserDTOAsIPagedList);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List col_UserDTO = new List(); // Error appears here
                return View(col_UserDTO.ToPagedList(1, 25));
            }
        }
        #endregion

`

2 个答案:

答案 0 :(得分:1)

PredicateBuilder.True<T>是通用的。您需要提供集合类型(对于col_UserDTO),在您的情况下StaticPagedList

List

请参阅http://www.programering.com/a/MTN2gDNwATM.html

您可能需要更改var _UserDTOAsIPagedList = new StaticPagedList<List<ExpandedUserDTO>> ( col_UserDTO, intPage, intPageSize, intTotalPageCount ); List col_UserDTO

的引用

答案 1 :(得分:0)

改为使用

var _UserDTOAsIPagedList =
   new StaticPagedList<ExpandedUserDTO>
      (
        col_UserDTO, intPage, intPageSize, intTotalPageCount
      );