在选择列表中连接两个字段(c#)
本文关键字:选择 两个 字段 连接 列表 | 更新日期: 2023-09-27 18:08:51
我使用viewbag来创建一个选择列表,我想显示两个连接在一起的字段。然而,在我看来,它正在崩溃。下面是viewbag代码:
ViewBag.PackageId = new SelectList(db.Packages.Where(p => p.status == "A"), "u_package_id", "u_package_id" + "'-'" + "package_nme");
应该可以了
ViewBag.PackageId = db.Packages.Where(p => p.status == "A")
.Select(p => new SelectListItem
{
Text = p.u_package_id + "-" + p.package_nme,
Value = p.u_package_id
};
SelectList构造函数的第二个和第三个参数是字符串,必须匹配你的模型中的属性名称(在你的情况下,你没有一个名为"u_package_id-package_nme"
的属性,因此错误)。
在控制器中,生成SelectListItem
ViewBag.PackageList = db.Packages.Where(p => p.status == "A").Select(p => new SelectListItem()
{
Value = p.u_package_id, // may need .ToString() depending on the property type
Text = string.Format("{0}-{1}", p.u_package_id, p.package_nme)
}
旁注:建议你命名你的属性,以反映他们是什么(即它的项目的集合,而不是一个ID,所以PackageList
,而不是PackageId
),这将是必要的,无论如何,如果你绑定的模型包含一个名为PackageId
的属性
多亏了deramko,我有了答案。他已经完成了99%的任务。下面是最后的代码:
ViewBag.PackageId = db.Packages.Where(p => p.status == "A")
.Select(p => new SelectListItem
{
Text = p.u_package_id + "-" + p.package_nme,
Value = p.u_package_id.ToString()
});