当您要在数据库中保存ID的同时显示说明时,通常使用DropDown输入字段。 如果我考虑我的Person模型,那么我有PersonViewModel,它具有一个SelectList,用于显示可能的职位描述列表
public SelectList SelectJobDescription
{
get
{
MyDbContext _context = new MyDbContext();
var result = new SelectList(_context.Keywords
.Where(k => k.Name == ".JobDescription")
.OrderBy(r => r.Valuename), "Valuecode", "Valuename");
_context.Dispose();
return result;
}
}
,然后在这样的创建/编辑视图中使用此SelectList:
<div class="form-group row">
<label asp-for="JobDescription" class="col-sm-4 col-form-label"></label>
<div class="col-sm-8">
<select asp-for="JobDescription" asp-items="@Model.SelectJobDescription" class="form-control">
<option>Select a Job Description</option>
</select>
</div>
在ViewModel中以这种方式使用_context是否正确,或者还有其他方法可以使同一件事做得更好(也许是DI?)
答案 0 :(得分:0)
在实例化视图模型后(或在初始化期间)设置属性,例如:
var vm = new YourViewModel()
{
SelectJobDescription = new SelectList( _context... ),
};
return View( vm );