在MVC中设置数据库驱动的DropDownListFor的值
本文关键字:DropDownListFor 的值 数据库 MVC 设置 | 更新日期: 2023-09-27 18:25:02
SO上已经有很多关于这方面的问题,我已经看了很多,但仍然无法弄清楚我到底做错了什么。我可以在没有任何问题的情况下使用dropdownloadlist来填充选择值,但从数据库中设置列表的值是不起作用的。
基本上,相同的选择列表在页面上被多次使用,并且有一个单独的模型变量来跟踪每个实例的值。以下是hdr_base_uom变量的示例:
型号:
public string hdr_base_uom { get; set; }
public List<UomOption> putupOptions { get; set; }
public class UomOption
{
public int uom_id { get; set; }
public string uom_description { get; set; }
}
填充列表:
public List<UomOption> GetPutupOptions()
{
try
{
using (IfxConnection con = new IfxConnection(WebConfigurationManager.AppSettings["IBMCONN"].ToString()))
{
con.Open();
List<UomOption> uomOptions= con.Query<UomOption>("select uom_id, initcap(uom_description) as uom_description " +
" from oe_unitom " +
" where uom_group = 1 order by uom_description").ToList();
con.Close();
uomOptions.Insert(0, new UomOption(){ uom_id = 0, uom_description = " "});
return uomOptions;
}
}
catch (Exception x)
{
throw x;
}
}
视图:
@Html.DropDownListFor(model => model.hdr_base_uom, new SelectList(Model.putupOptions,
"uom_id", "uom_description", Model.hdr_base_uom),
new { disabled = "disabled", style = "width:13em" })
如果我只是在页面上显示model.hdr_base_uom
的值,那么就会显示设置为该变量的uom_id
。然而,尝试使用该ID来设置dropdownlistfor
的值没有任何作用。例如,如果uom_id
是具有要显示的"Roll"
的相应描述的58
,则dropdownlistfor
不是默认为滚动,而是显示列表中的第一个元素(上面添加的空元素)
你觉得我在这里做错了什么吗?
我不知道Model.hdr_base-uom
是什么意思。不过你并不需要它:
@Html.DropDownListFor(model => model.hdr_base_uom, new SelectList(Model.putupOptions,
"uom_id", "uom_description"),
new { disabled = "disabled", style = "width:13em" })
还要确保将"58"
(或所选值的字符串)设置为hdr_base_uom
字段。
您的示例对我来说是有效的(无论是否使用Model.hdr_base-uom
)(当然,在现代浏览器中)。
Fiddle