Model view controller MVC列表框选择的值

Model view controller MVC列表框选择的值,model-view-controller,listbox,Model View Controller,Listbox,MVC和Stackoverflow新手,很抱歉没有足够的声誉发布图片 尝试使用预选值呈现列表框 我的SQL数据库: 我的实体框架 我的控制器 我的看法 <p>try1:</p> @Html.ListBox("Roles", null, new { @class = "form-control", @size = 6, @style = "height: initial" }) <p>try2:</p> @Html.ListBox("x", nu

MVC和Stackoverflow新手,很抱歉没有足够的声誉发布图片

尝试使用预选值呈现列表框

我的SQL数据库:

我的实体框架

我的控制器

我的看法

<p>try1:</p>
@Html.ListBox("Roles", null, new { @class = "form-control", @size = 6, @style = "height: initial" })
<p>try2:</p>
@Html.ListBox("x", null, new { @size = 6, @style = "height: initial" })
两次尝试中没有一次使用预先选择的值进行渲染?

使其正常工作

public ActionResult AccessRights(int id)
    {
        var user = db.User.Find(id);

        IEnumerable<SelectListItem> roles = db.Role.Select(c => new SelectListItem{ Value = c.Id.ToString(), Text = c.RoleName, Selected = true});
        var rolesSelected = new int[user.Role.Count];
        var i = 0;
        foreach (var role in user.Role)
        {
            rolesSelected[i] = role.Id;
            i++;
        }

        ViewBag.Roles = roles.ToList();
        ViewBag.RolesSelected = rolesSelected;

        return View(user);
    }

@Html.ListBox("RolesSelect", new MultiSelectList(ViewBag.Roles, "Value", "Text", ViewBag.RolesSelected), new { @class = "form-control", @size = 6, @style = "height: initial" })
public ActionResult AccessRights(int id)
    {
        var user = db.User.Find(id);

        IEnumerable<SelectListItem> roles = db.Role.Select(c => new SelectListItem{ Value = c.Id.ToString(), Text = c.RoleName, Selected = true});
        var rolesSelected = new int[user.Role.Count];
        var i = 0;
        foreach (var role in user.Role)
        {
            rolesSelected[i] = role.Id;
            i++;
        }

        ViewBag.Roles = roles.ToList();
        ViewBag.RolesSelected = rolesSelected;

        return View(user);
    }

@Html.ListBox("RolesSelect", new MultiSelectList(ViewBag.Roles, "Value", "Text", ViewBag.RolesSelected), new { @class = "form-control", @size = 6, @style = "height: initial" })