下拉列表未在编辑页面上显示值
Dropdownlist not displaying value on Edit page
我从 table 填充下拉列表,问题是当我转到“编辑”页面时,它没有 select 值而是显示 "Select Company"。
我使用 AspNetUsers 默认 table,并在其上添加另一列名为公司(整数)。
我有另一个模型 & Table 称为 TBL_COMP,它映射到 AspNetUsers。
public class TBL_COMP
{
[Key]
public int CompId { get; set; }
public string CompDesc { get; set; }
}
在我的模型 (UserViewModels) 中我有这个
public int Company { get; set; }
[ForeignKey("Company")]
public TBL_COMP TBL_COMP { get; set; }
这是视图中的下拉列表:
@Html.DropDownListFor(m => m.Company, new SelectList(ViewBag.Company, "Value", "Text"), "Select Company", new { @class = "form-control" })
这是控制器:
ViewBag.Company = new SelectList(db.TBL_COMP.ToList(), "CompId", "CompDesc", user.Company);
ViewBag.Company
已包含 SelectList
,只需将其投射到视图上即可(从现有 SelectList
创建另一个 SelectList
毫无意义):
@Html.DropDownListFor(m => m.Company, ViewBag.Company as SelectList, "Select Company",
new { @class = "form-control" })
或者使用强类型IEnumerable<SelectListItem>
代替:
视图模型
public class UserViewModels
{
// other properties
public List<SelectListItem> Companies { get; set; }
}
控制器动作
var model = new UserViewModels();
model.Companies = db.TBL_COMP.Select(x => new SelectListItem { Text = x.CompDesc, Value = x.CompId }).ToList();
查看
@Html.DropDownListFor(m => m.Company, Model.Companies, "Select Company", new { @class = "form-control" })
我从 table 填充下拉列表,问题是当我转到“编辑”页面时,它没有 select 值而是显示 "Select Company"。
我使用 AspNetUsers 默认 table,并在其上添加另一列名为公司(整数)。
我有另一个模型 & Table 称为 TBL_COMP,它映射到 AspNetUsers。
public class TBL_COMP
{
[Key]
public int CompId { get; set; }
public string CompDesc { get; set; }
}
在我的模型 (UserViewModels) 中我有这个
public int Company { get; set; }
[ForeignKey("Company")]
public TBL_COMP TBL_COMP { get; set; }
这是视图中的下拉列表:
@Html.DropDownListFor(m => m.Company, new SelectList(ViewBag.Company, "Value", "Text"), "Select Company", new { @class = "form-control" })
这是控制器:
ViewBag.Company = new SelectList(db.TBL_COMP.ToList(), "CompId", "CompDesc", user.Company);
ViewBag.Company
已包含 SelectList
,只需将其投射到视图上即可(从现有 SelectList
创建另一个 SelectList
毫无意义):
@Html.DropDownListFor(m => m.Company, ViewBag.Company as SelectList, "Select Company",
new { @class = "form-control" })
或者使用强类型IEnumerable<SelectListItem>
代替:
视图模型
public class UserViewModels
{
// other properties
public List<SelectListItem> Companies { get; set; }
}
控制器动作
var model = new UserViewModels();
model.Companies = db.TBL_COMP.Select(x => new SelectListItem { Text = x.CompDesc, Value = x.CompId }).ToList();
查看
@Html.DropDownListFor(m => m.Company, Model.Companies, "Select Company", new { @class = "form-control" })