C# 具有键';User.RoleID';类型为';System.Int32';但必须为'型;IEnumerable<;选择列表项>';

C# 具有键';User.RoleID';类型为';System.Int32';但必须为'型;IEnumerable<;选择列表项>';,c#,model-view-controller,C#,Model View Controller,当我执行下面的代码时,我得到了这个错误。我似乎无法修复它。有人能帮我吗?任何帮助都将不胜感激 型号: public class UserViewModel { public Users User { get; set; } public List<ExamGroups> AllGroups { get; set; } public List<ExamGroups> UserGroups { get; set; }

当我执行下面的代码时,我得到了这个错误。我似乎无法修复它。有人能帮我吗?任何帮助都将不胜感激

型号:

public class UserViewModel
    {
        public Users User { get; set; }
        public List<ExamGroups> AllGroups { get; set; }
        public List<ExamGroups> UserGroups { get; set; }
        //public List<> SelectedExamGroups { get; set; }
        public int[] SelectedGroups { get; set; }

    }
public类UserViewModel
{
公共用户用户{get;set;}
公共列表所有组{get;set;}
公共列表用户组{get;set;}
//公共列表SelectedExamGroup{get;set;}
public int[]SelectedGroups{get;set;}
}
视图:


@LabelFor(model=>model.User.RoleID)
@DropDownListFor(model=>model.User.RoleID,(SelectList)ViewBag.UserRoles,“Seçnizing”)
@Html.ValidationMessageFor(model=>model.User.RoleID)
控制器:

public ActionResult Create() { 
    ViewBag.UserRoles = new SelectList(db.ListItem.Where(a => a.ListID == 2), "ListValue", "ListText");
    var q = new SelectList(new[]{ new { ID= "1", Name="Aktif"}, new { ID= "0", Name="Pasif"}, } ,"ID","Name",1);
    ViewBag.Status = q; 
    return View(InitilizeData());
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(UserViewModel users)
{
    if (ModelState.IsValid)
    {
        string IDs = "";
        for (int i = 0; i < users.SelectedGroups.Count(); i++)
        {
            IDs += users.SelectedGroups[i].ToString() + "|";
        }
        db.CreateUser(users.User.RegistryNo, users.User.Name, users.User.Surname, users.User.Password, users.User.RoleID, users.User.IsActive, IDs, users.User.LastLoginDate);
    } 
    return View();
}
public ActionResult Create(){
ViewBag.UserRoles=新建SelectList(db.ListItem.Where(a=>a.ListID==2),“ListValue”,“ListText”);
var q=new SelectList(new[]{new{ID=“1”,Name=“Aktif”},new{ID=“0”,Name=“Pasif”},},“ID”,“Name”,1);
ViewBag.Status=q;
返回视图(InitilizeData());
}
[HttpPost]
[ValidateAntiForgeryToken]
公共操作结果创建(UserViewModel用户)
{
if(ModelState.IsValid)
{
字符串id=“”;
对于(int i=0;i
你能把这段代码贴在你fil
ViewBag.UserRoles
的地方吗?public ActionResult Create(){ViewBag.UserRoles=new SelectList(db.ListItem.where(a=>a.ListID==2),“ListValue”,“ListText”);var q=new SelectList(new[]{new{ID=“1”,Name=“Aktif”},new{ID=“0”,Name=“Pasif”},},“ID”,“Name”,1);ViewBag.Status=q;返回视图(InitilizeData());}尝试用
新的SelectList(db.ListItem.Where(a=>a.ListID==2),“ListValue”,“ListText”);
替换为
db.ListItem.Where(a=>a.ListID==2)。选择(a=>new SelectListItem{Text=a.ListText,Value=a.ListValue})
。但是,什么是
ListValue
?它应该是一个整数。它是一个整数,但又会出现错误。请尝试向
用户视图模型添加一个int字段,作为
公共int测试{get;set;}
,然后将其更改为
@Html.DropDownListFor(model=>model.User.RoleID…
到这个
@Html.DropDownListFor(model=>model.Test…
public ActionResult Create() { 
    ViewBag.UserRoles = new SelectList(db.ListItem.Where(a => a.ListID == 2), "ListValue", "ListText");
    var q = new SelectList(new[]{ new { ID= "1", Name="Aktif"}, new { ID= "0", Name="Pasif"}, } ,"ID","Name",1);
    ViewBag.Status = q; 
    return View(InitilizeData());
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(UserViewModel users)
{
    if (ModelState.IsValid)
    {
        string IDs = "";
        for (int i = 0; i < users.SelectedGroups.Count(); i++)
        {
            IDs += users.SelectedGroups[i].ToString() + "|";
        }
        db.CreateUser(users.User.RegistryNo, users.User.Name, users.User.Surname, users.User.Password, users.User.RoleID, users.User.IsActive, IDs, users.User.LastLoginDate);
    } 
    return View();
}