Mvc 5 Multiselectlist选择不起作用

时间:2015-05-18 12:57:31

标签: asp.net-mvc

选择使用其中的项创建的元素,但在html结果中未显示“selected”属性。我做错了什么?

此代码有效:

控制器:

ViewBag.ProductTwistDirectionID = new SelectList(db.tblProductTwistDirection, 
       "ProductTwistDirectionID", 
       "ProductTwistDirectionName", 
        tblProduct.ProductTwistDirectionID);

视图:

@Html.DropDownList("ProductTwistDirectionID", 
                   null, 
                   htmlAttributes: new { @class = "form-control" })

此代码无效:(所选项目未在渲染时选择)

控制器:

ViewBag.ProductUsePurposes = new MultiSelectList(db.tblProductUsePurpose,
                                                 "ProductUsePurposeID",
                                                 "ProductUsePurposeName",
                                                 tblProduct.ProductUsePurposes
                                                 .Select(x 
                                                         => x.ProductUsePurposeID)
                                                 .ToArray());

视图:

@Html.DropDownListFor(model => model.ProductUsePurposes, 
                      null, 
                      new 
                         { 
                           @class = "chosen-select", 
                           multiple = "multiple", 
                           data_placeholder = "Choose use purposes", 
                           style = "width: 400px;" 
                          })

1 个答案:

答案 0 :(得分:2)

您持有选择列表的$('div').find(input[data-color='#42B4E6']).hide(); 成员的名称不能与您的模型属性相同。除了ViewBagViewBag之外,还使用ViewData来组成Request对象,ModelState中的任何内容都会覆盖模型上的属性。

简单地说,您需要将ModelState重命名为ViewBag.ProductUsePurposes。那么,你应该没事。