没有类型&#39; IEnumerable <selectlistitem>&#39;的ViewData项目。有关键&#39; UserRole&#39;

时间:2016-10-28 21:45:18

标签: c# asp.net asp.net-mvc asp.net-mvc-4

这是我的代码,用于为登录用户创建下拉列表,然后用户选择角色并在Tabel中搜索以检查是否存在用户。

控制器:

  var roles = _database.Tbl_Role.Select(r => new {RoleID = r.RoleID.ToString(), RoleName = r.RoleTitle}).ToList();
        ViewBag.Roles = new SelectList(roles, "RoleID", "RoleName");

查看型号:

 public class ViewModel
{
    public class ViewLogin
    {
        [Required]

        public string UserName { get; set; }

        [Required]

        public string Password { get; set; }

        [Required]

        public string UserRole { get; set; }

        [Required]

        public bool RememberMe { get; set; }
    }
}

查看:

       <div class="form-group">
                @Html.LabelFor(m => m.UserRole)
                @Html.DropDownListFor(m => m.UserRole, ViewBag.Roles as SelectList, "-- نقش خود را مشخص کنید --", htmlAttributes: new {@class = "form-control"})
            </div>

它告诉我这个错误:

  

没有类型&#39; IEnumerable&#39;的ViewData项目。具有密钥&#39; UserRole&#39;。

问题是什么?

更新

 [HttpPost]
    public ActionResult Login(ViewModel.ViewLogin login)
    {
        if (login.UserRole=="1")
        {
            if (_users.CheckAdminExist(login.UserName,login.Password))
            {
                ViewBag.Message = "ورود با موفقیت انجام شد";
                ViewBag.Color = "Green";
            }
            else
            {
                ViewBag.Message = "مدیری با چنین مشخصاتی یافت نشد";
                ViewBag.Color = "Red";
            }
        }
        else if (login.UserRole=="2")
        {
            if (_users.CheckStudentExist(login.UserName, login.Password))
            {
                ViewBag.Message = "ورود با موفقیت انجام شد";
                ViewBag.Color = "Green";
            }
            else
            {
                ViewBag.Message = "دانش آموزی با چنین مشخصاتی یافت نشد";
                ViewBag.Color = "Red";
            }
        }
        else if (login.UserRole=="3")
        {
            if (_users.CheckTeacherExist(login.UserName, login.Password))
            {
                ViewBag.Message = "ورود با موفقیت انجام شد";
                ViewBag.Color = "Green";
            }
            else
            {
                ViewBag.Message = "معلمی با چنین مشخصاتی یافت نشد";
                ViewBag.Color = "Red";
            }
        }
        return PartialView("_LoginPartial");
    }
}

0 个答案:

没有答案