在查看下拉菜单的许多示例之后,这是我的情况。
我有一个数据库表:Companies
在我的注册视图模型中,我有以下内容:public int? CompanyId { get; set; }
(考虑将其更改为public IEnumerable<Company> Companies { get; set; }
)
在我的注册视图中,用户可以选择他所在的公司。我想有一个下拉列表,列出我们数据库中的公司供用户选择。
我设置了公司存储库以获取所有公司并以IEnumerable
返回。
我该如何处理?在视图模型或控制器中执行此操作会更好吗?
答案 0 :(得分:4)
在您的模型中,声明两个属性。
public int? CompanyId { get; set; }
public IEnumerable<SelectListItem> Companies { get; set; }
然后在你看来
@Html.LabelFor(x => x.CompanyId)
@Html.DropDownListFor(x => x.CompanyId, Model.Companies)
这将创建一个选择列表,用于设置您的CompanyId属性并使用公司作为选项值。
您可以轻松创建SelectList。我猜它会像
Companies.AddRange(
aListOfCompanies.Select(x =>
new SelectListItem { Text = x.CompanyName, Value = x.CompanyId.ToString() }));
答案 1 :(得分:0)
在ViewModel中创建一个方法,如(GetCompanies()) 然后在你的Controller中创建一个SelectList对象,它返回你的viewModel对象。 然后你可以通过viewBag或模型中的属性将它传递给视图。