razor视图
数据库中存储的是select 中的value,是数字。详情页面中显示的是select中的text文本。
select中的option较多。
大家都是如何处理的?
在后台构造好List<SelectListItem>就行了哇。
我在cshtml页面中构造,特别是select元素较多时感觉有点麻烦。
@lucika.zh: 这个确实是这样的,可是没什么好办法~
在模型里定义一个集合,比如 AvailableItems,类型IEnumerable<SelectListItem>就好,同时,再定义一个默认值变量:SelectedValue,既可以做默认值用,也可以做表单提交时的选项值:
@Html.DropDownListFor(model=>model.SelectedValue, Model.AvailableItems, "提示选择说明项")
当然,形成AvailableItems时就简单了,从数据库里查询,使用循环设置就好:
foreach(var row in rows)
{
model.AvailableItems.Add(new SelectListItem{Text=row.text, Value=row.id});
}