无法从实体框架填充ASP.NET MVC 5中的下拉列表

时间:2019-02-03 19:18:43

标签: asp.net-mvc entity-framework view dropdown html.dropdownlistfor

我正在尝试在ASP.NET MVC 5中填充一个下拉列表,但没有成功。

控制器:

[AllowAnonymous]
[HttpGet]
public ActionResult PartialRegistrationRoles()
{
        using (DBModels db = new DBModels())
        {
            List<Role> allRoles = db.Roles.ToList();
            var roles = new SelectList(db.Roles.ToList(),"RoleName");
            ViewData["DBRoles"] = roles.Items;
        }

        return View();
}

局部视图:

@using System.Collections
@using WorkFinder.Models
@model WorkFinder.Models.Role


<div class="form-group">
    @Html.DropDownList("Roles", new SelectList((IEnumerable) 
    ViewData["DBRoles"]),"Roleid","RoleName")
   </div>

实际下拉列表:

The drop down is just retrieving some SYSTEM.DATA.ENTITY...

浏览主视图时出错,但是下拉菜单显示为局部视图:

Error in main view

任何人都可以帮助我了解我在做什么错吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,看看DropDownListSelectList的重载方法。您很可能放错了支架,并打算这样做:

@Html.DropDownList("Roles", new SelectList((IEnumerable)ViewData["DBRoles"],"Roleid","RoleName"))

就将其称为局部视图而言,请显示相关代码(主视图),我将更新答案。