【问题标题】:select2 multiple shows not selected in controllerselect2 多个节目未在控制器中选择
【发布时间】:2016-05-23 06:59:37
【问题描述】:

我在 c# mvc5 中使用 select2。每当我在多个列表中选择一个角色时,我的所有值都会传递给控制器​​并显示为选中的 false(即使我选择了列表中的角色之一)。

这是我的看法

@Html.DropDownListFor(u => u.RoleId, Model.Roles, new { @class = "select2-multiple form-control", @data_placeholder = "-- Please select your role(s) --", id = "ddlRole", name = "ddlRole", multiple = "multiple"})

这是我的模型

public IEnumerable<SelectListItem> Roles { get; set; }

这是我的控制器

foreach (var roles in model.Roles)
{
     if (roles.Selected == true) { 
         Database.CreateMultipleRoleForUser(userid, model, roles.Value);
     }
}

即使我选择了角色,这里的图像在roles.Selected 上显示选择的错误 --> 点击这个!

【问题讨论】:

  • 不清楚你在做什么。该控制器代码是获取方法还是发布方法? DropDownListFor() 用于创建单选,您似乎想要多选,在这种情况下使用ListBoxFor()。它是您绑定到 (RoleId) 的属性的值,它决定了选择的内容,因此 RoleId 需要是 typeof IEnumerable&lt;int&gt; 并且您在将模型传递给视图之前在 GET 方法中设置它的值跨度>

标签: c# asp.net-mvc-5 selectlistitem


【解决方案1】:

我设法通过将数组 int selectedRole添加到我的模型和新的选择列表中来解决它。

@Html.DropDownListFor(u => u.selectedRole, new SelectList(Model.Roles, "Value", "Text", Model.selectedRole), new { @class = "select2-multiple form-control", @data_placeholder = "-- Please select your role(s) --", id = "ddlRole", name = "ddlRole[]", multiple = "multiple" })

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 1970-01-01
    • 2019-05-25
    • 2021-05-20
    • 2020-02-25
    • 2017-04-06
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多