c# - 下拉列表不默认为选定项目
问题描述
我的控制器中有以下代码。请注意,如果 companyId 为 4,我喜欢将其作为下拉列表中的默认值:
var company = _conpanyService.companyLst().ToList();
var items = new List<SelectListItem>();
foreach (var item in company)
{
items.Add(new SelectListItem()
{
Text = item.CompanyName,
Value = item.CompanyID.ToString(),
Selected = item.CompanyID == 4 ? true : false
});
}
// I double checked the items list and it does have companyID of 4 set to Select to true. Not sure why it did not propagate to the view.
ViewBag.CompanyList = items;
视图内容:
@Html.DropDownList("CompanyID", (IEnumerable<SelectListItem>)ViewBag.CompanyList, "Please Select", new { @class = "form-control" })
问题是,即使我在 View 上查看源代码,所选内容也无法通过。我不确定为什么它没有被选中。
解决方案
尝试这个。在控制器中,
var company = _conpanyService.companyLst().ToList();
ViewBag.CompanyList = new SelectList(company, "CompanyId", "CompanyName", 4);
在视图中,
@Html.DropDownList("CompanyId", (SelectList) ViewBag.CompanyList)
推荐阅读
- python - 从 URL 下载文件并将其保存在 Python 文件夹中
- ios - Flutter:Firestore 事务仅在物理 iOS 设备上崩溃
- angular - 使用 `ng s` 命令在特定主机上运行 Angular 项目
- c# - 使用 newtonsoft.json 从 httprequest 中只获取几个属性
- python - 这个空白是从哪里来的?
- xcode - 无法启动内置于 Xcode 的 macOS 应用程序
- r - 计算值随时间的变化
- c# - 流利的验证检查空或最小最大字符串长度
- google-apps-script - 如何在 Google Apps 脚本中将简单公式加 1?
- azure-logic-apps - 将数组中的值获取到变量中 [Azure Logic App]