Использование полей ввода 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>
Правильно ли использовать _context таким образом в ViewModel или есть какой-то другой способ сделать то же самое лучше (возможно, DI?)