视图模型中的Serializable装饰器而不是SelectList?

Ser*_*ejs 4 c# asp.net-mvc decorator asp.net-mvc-3

ViewModel在会话中存储.现场环境存在问题.由于配置,我不能在会话中存储非可序列化的类,也SelectList不能标记为Serializable.

什么是更好的方式来排除使用SelectListViewModel作为DataSource用于DropDown控制?

Rom*_*ias 6

您可以在视图模型中存储项目集合,而不是选择列表.然后,向ViewModel添加一个方法,该方法GetSelectList()使用该集合创建一个SelectList.

这样,您存储数据,一旦从会话中检索该对象,您可以调用该GetSelectList()方法在下拉列表中使用它.

您甚至可以传递参数来设置所选值.