【发布时间】:2014-10-01 05:55:28
【问题描述】:
我正在我的模型列表中填充一小组下拉列表项:
SecSellerCodes = (from s in db.DropDownValues
where s.Field.Equals("SecSellerCd") &&
s.DisplayPage.Equals("Agent Create")
select s).Select(x => new SelectListItem
{
Text = x.DisplayValue,
Value = x.AllowedValue
}).Distinct().ToList();
我希望用户能够从上述查询中提取的项目列表中进行选择,并在列表顶部包含一个空白选项,以防他们不希望填充此特定字段。
使用以下帮助程序,一旦页面加载/用户保存到数据库,它就可以正常工作。但是,如果他们需要重新加载页面并进行调整,则始终选择空白的string.Empty 项(无论表中的值如何)。
@Html.DropDownListFor(model => model.SecSellerCd, Model.SecSellerCodes, string.Empty)
知道使用哪个助手/技术来完成此任务吗?
【问题讨论】:
-
如果属性
SecSellerCd的值与SelectList中的值之一匹配(即x.AllowedValue),那么它将被选中。你确定有匹配的值吗 -
是的。在这种情况下,显示值和允许值相同。我已验证该字段中存在有效值。
-
奇怪。尝试将
SecSellerCodes创建为SelectList-var values = (from s in db.DropDownValues where ... select s); SecSellerCodes = new SelectList(values, "AllowedValue", "DisplayValue"); -
所以当它被保存到数据库时,看起来每个值的末尾都有一个额外的空间。不知道这是怎么发生的,但这就是导致程序关闭的原因。
标签: c# asp.net-mvc asp.net-mvc-3 html.dropdownlistfor