我希望我的模特的一部分有“学校”和“学期”。他们都会堕落。 将来,我希望能够轻松添加更多学校。
我只是想用这个吗?如果是这样,我如何处理随时出现在下拉列表中的内容。调用DropDownFor而不必在每个页面上制作列表?
[Required(ErrorMessage = "You must select a school")]
[Display(Name = "School")]
public string school { get; set; }
我看到一个使用SelectList而不是school的示例,但是对于如何使用它有点困惑,因为存储在数据库中的信息只是一个学校名称,而不是整个列表。 SelectList是否是在这种情况下使用的正确类型?我应该使用除selectlist和string之外的其他东西吗?感谢。
答案 0 :(得分:2)
您应该同时使用选择列表和字符串。 SelectList
将保留下拉选项,school
将保留用户选择的值
像这样的东西
//view model
public IEnumerable<SelectListItem> SchoolsSelectList { get; set; }
public string School { get; set; }
//controller action
public ActionResult Create()
{
SchoolSemesterViewModel model = new SchoolSemesterViewModel();
model.SchoolsSelectList = SchoolRepository.Schools.Select(x=> new SelectListItem()
{
Text = x.SchoolName,
Value = x.SchoolName
});
return View(model);
}
//view
@Html.DropDownListFor(model => model.School, Model.SchoolsSelectList)