asp.net-mvc – .NET MVC MultiSelectList和选定的值

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – .NET MVC MultiSelectList和选定的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为MultiSelectList设置选定的值,但页面不显示任何选定的值.我已经尝试过每一种实用的方法来做到这一点并且仍然得到相同的结果.我目前正在尝试通过构造函数传递所选对象的列表.我得到的是,当我检查MultiSelectList对象时,selectedvalues属性包含我使用构造函数传递给它的项目,但它仍然不显示.

我注意到很多人都有同样的问题,但我没有看到一个对我有用的答案.我已经尝试遍历列表并将selected属性设置为true,我尝试从头开始创建多选列表并设置每个单独的项目选择属性,我尝试使用构造函数.这些都没有奏效.我还发现了一个建议,即MultiSelectList属性名称与控件(我尝试过的)相同,但不起作用.为什么使用此框架创建包含所选值的下拉列表如此困难?我错过了什么吗?

<label for="StatesOfPractice">States of Practice:</label>
                    <br />
                    <%= Html.ListBox("StatesOfPractice",Model.StatesOfPracticeList)%>
                    <br />
                    <%= Html.ValidationMessage("StatesOfPractice")%>

编辑1

当我实例化MultiSelectList时,它似乎正在发生.如果我检查视图中的对象并打开结果视图,我可以看到当我知道它应该是“阿拉斯加”时没有被选中.

http://imgur.com/eTIdH.jpg

我正在这样实例化.

new MultiSelectList(List<GenericDataContract>,"Code","Description",List<GenericDataContract>);

GenericDataContract只是一个具有两个属性Code和Description的类.第一个List是所有状态,第二个List是我选择的状态.

解决方法

我相信它从模型中提取所选项目,而不是从项目列表中提取.确保使用要选择的项填充StatesOfPractice模型属性.也就是说,StatesOfPracticeList模型属性提供用于填充列表的项集.模板属性StatesOfPractice在发布表单时将是所选属性值的集合,还应包含呈现视图时的默认选定值.在引擎盖下,它使用HtmlHelper GetModelStateValue方法来查找任何选择列表的选定值.我认为这样做是为了在存在验证错误时保持所选值并且使用模型状态错误重新呈现表单更简单.

猜你在找的asp.Net相关文章