Asp.net mvc 选择的Mvc 5多选列表不工作

Asp.net mvc 选择的Mvc 5多选列表不工作,asp.net-mvc,Asp.net Mvc,选择元素,该元素使用其中的项目创建,但“选定”属性不会显示在html结果中。我做错了什么 此代码正在运行: 控制器: ViewBag.ProductTwistDirectionID = new SelectList(db.tblProductTwistDirection, "ProductTwistDirectionID", "ProductTwistDirectionName", tblProduct.ProductTwistDirection

选择元素,该元素使用其中的项目创建,但“选定”属性不会显示在html结果中。我做错了什么

此代码正在运行:

控制器:

ViewBag.ProductTwistDirectionID = new SelectList(db.tblProductTwistDirection, 
       "ProductTwistDirectionID", 
       "ProductTwistDirectionName", 
        tblProduct.ProductTwistDirectionID);
ViewBag.ProductUsePurposes = new MultiSelectList(db.tblProductUsePurpose,
                                                 "ProductUsePurposeID",
                                                 "ProductUsePurposeName",
                                                 tblProduct.ProductUsePurposes
                                                 .Select(x 
                                                         => x.ProductUsePurposeID)
                                                 .ToArray());
视图:

此代码不起作用:(所选项目在渲染时未选择)

控制器:

ViewBag.ProductTwistDirectionID = new SelectList(db.tblProductTwistDirection, 
       "ProductTwistDirectionID", 
       "ProductTwistDirectionName", 
        tblProduct.ProductTwistDirectionID);
ViewBag.ProductUsePurposes = new MultiSelectList(db.tblProductUsePurpose,
                                                 "ProductUsePurposeID",
                                                 "ProductUsePurposeName",
                                                 tblProduct.ProductUsePurposes
                                                 .Select(x 
                                                         => x.ProductUsePurposeID)
                                                 .ToArray());
视图:


持有选择列表的
ViewBag
成员的名称不能与模型属性的名称相同<除了
ViewData
Request
之外,code>ViewBag用于组成
ModelState
对象,而
ModelState
中的任何内容都会覆盖模型上的属性


简单地说,您需要将
ViewBag.ProductUsePurposes
重命名为类似于
ViewBag.ProductUsePurposesChoices
。那么,您应该很好。

什么是
tblProduct.ProductUsePurposes.Select(x=>x.ProductUsePurposeID).ToArray()
yield?两个ID的int数组,具有正确的值。您解决过这个问题吗?