无法将类型'System.Collections.Generic.List <string>'隐式转换为'System.Collections.Generic.IEnumerable <loginform.userinfo_result>'

时间:2018-12-06 04:49:56

标签: c#

我是MVC的新手。我正在尝试从数据库加载用户名到下拉列表。但是在我的模型类中出现错误-

无法将类型'System.Collections.Generic.List'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(您是否缺少演员表?)

我的模型类是-

DropdownClass.cs 这是我的模型类代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LoginForm.Models;

    namespace LoginForm.Models
    {
        public class DropdownClass
        {

            ConsumerBankingEntities db = new ConsumerBankingEntities();
            public IEnumerable<UserInfo_Result> GetUserInfo()
            {
                var query = (from s in db.UserInfo()
                            select s);
                return query.ToList();

            }
        } 
    }

我的控制器名称是

LoginController.Cs

这是控制器代码-

using LoginForm.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Data;
using System.Web.Security;
using System.Data.SqlClient;


namespace LoginForm.Controllers
{
    public class LoginController : Controller
    {

        ConsumerBankingEntities db = new ConsumerBankingEntities();


        public ActionResult Dropdown(string returnUrl)
        {

            DropdowncCass dp = new DropdowncCass();
            var allName = dp.GetUserInfo();
            ViewBag.AllNameList = allName;
            Session["allName"] = allName;
            ViewBag.ReturnUrl = returnUrl;

            return RedirectToAction("Welcome","Login");

        }


        // GET: Login
        public ActionResult Index()
        {
            return View();
        }


        public ActionResult Welcome()
        {
            return View();
        }

    }
}

如何克服这个错误?

1 个答案:

答案 0 :(得分:0)

这是因为您的db.UserInfo()方法返回了string的集合,而ToString()使其成为了List<string>,但是方法GetUserInfo()返回了IEnumerable<UserInfo_Result>

您应该更改db.UserInfo()以返回IEnumerable<UserInfo_Result>,或者在返回之前(在IEnumerable<UserInfo_Result>处构造GetUserInfo,或者仅更改GetUserInfo的返回类型到List<string>。这取决于您的需求。