我是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();
}
}
}
如何克服这个错误?
答案 0 :(得分:0)
这是因为您的db.UserInfo()
方法返回了string
的集合,而ToString()
使其成为了List<string>
,但是方法GetUserInfo()
返回了IEnumerable<UserInfo_Result>
。
您应该更改db.UserInfo()
以返回IEnumerable<UserInfo_Result>
,或者在返回之前(在IEnumerable<UserInfo_Result>
处构造GetUserInfo
,或者仅更改GetUserInfo
的返回类型到List<string>
。这取决于您的需求。