使用 ViewBag 以自定义文本填充下拉列表
Using ViewBag to Fill Dropdown with Custom Text
我正在使用 ViewBag 来填充下拉列表:
控制器:
ViewBag.bolumList = db.SbtBolum.OrderBy(s => s.BolumAd)
查看:
@Html.DropDownListFor(model => model.YGKisiBolum.Bolum, new SelectList(ViewBag.bolumList, "BolumID" , "BolumAd"), "Seçiniz", new { @class = "form-control" })
现在我想在文本字段中显示合并的两列,如 SQL:
SELECT BolumID As Value, BolumAd+" "+BolumExtra AS Text FROM SbtBolum
如何使用 ViewBag 和 Linq 执行此操作?
var values = db.SbtBolum.OrderBy(s => s.BolumAd).ToList().Select(s => SelectListItem
{
Value = s.BolumID.ToString(),
Text = s.BolumAd + " " + s.BolumExtra,
});
ViewBag.bolumList = values;
在您看来:
@Html.DropDownListFor(
model => model.YGKisiBolum.Bolum,
(IEnumerable<SelectListItem>)ViewBag.bolumList,
"Seçiniz",
new { @class = "form-control" }
)
这是 said/shown,我完全反对这种方法。为此,我宁愿使用强类型视图模型并摆脱 ViewBag。
我正在使用 ViewBag 来填充下拉列表:
控制器:
ViewBag.bolumList = db.SbtBolum.OrderBy(s => s.BolumAd)
查看:
@Html.DropDownListFor(model => model.YGKisiBolum.Bolum, new SelectList(ViewBag.bolumList, "BolumID" , "BolumAd"), "Seçiniz", new { @class = "form-control" })
现在我想在文本字段中显示合并的两列,如 SQL:
SELECT BolumID As Value, BolumAd+" "+BolumExtra AS Text FROM SbtBolum
如何使用 ViewBag 和 Linq 执行此操作?
var values = db.SbtBolum.OrderBy(s => s.BolumAd).ToList().Select(s => SelectListItem
{
Value = s.BolumID.ToString(),
Text = s.BolumAd + " " + s.BolumExtra,
});
ViewBag.bolumList = values;
在您看来:
@Html.DropDownListFor(
model => model.YGKisiBolum.Bolum,
(IEnumerable<SelectListItem>)ViewBag.bolumList,
"Seçiniz",
new { @class = "form-control" }
)
这是 said/shown,我完全反对这种方法。为此,我宁愿使用强类型视图模型并摆脱 ViewBag。