Asp.net mvc MVC4-如何为始终是下拉列表的学校名称设置最佳模型

Asp.net mvc MVC4-如何为始终是下拉列表的学校名称设置最佳模型,asp.net-mvc,Asp.net Mvc,我希望我的部分模型有“学校”和“学期”。它们都是下拉列表。 在未来,我希望能够轻松地增加更多的学校 我只是想用这个吗?如果是这样的话,我该如何随时处理下拉列表中显示的内容。在不必在每页上列出列表的情况下调用DropDownFor [Required(ErrorMessage = "You must select a school")] [Display(Name = "School")] public string school { get; set; } 我看到了一个

我希望我的部分模型有“学校”和“学期”。它们都是下拉列表。 在未来,我希望能够轻松地增加更多的学校

我只是想用这个吗?如果是这样的话,我该如何随时处理下拉列表中显示的内容。在不必在每页上列出列表的情况下调用DropDownFor

    [Required(ErrorMessage = "You must select a school")]
    [Display(Name = "School")]
    public string school { get; set; }

我看到了一个使用SelectList而不是school的示例,但是对于如何使用它有点困惑,因为数据库中存储的信息只是一个学校名称,而不是一个完整的列表。SelectList是在这种情况下使用的正确类型吗?除了selectlist和string之外,还有什么我应该使用的吗?谢谢。

您应该同时使用选择列表和字符串<代码>选择列表将保留下拉选项,
学校
将保留用户选择的值

像这样的

//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)
//视图模型
公共IEnumerable SchoolsSelectList{get;set;}
公共字符串学校{get;set;}
//控制器动作
公共操作结果创建()
{
SchoolSemesterViewModel=新SchoolSemesterViewModel();
model.schoolselectlist=SchoolRepository.Schools.Select(x=>newselectListItem()
{
Text=x.SchoolName,
Value=x.SchoolName
});
返回视图(模型);
}
//看法
@DropDownListFor(model=>model.School,model.schools选择列表)

谢谢您的回复!在本例中,我将学校的名称存储在哪里?可以存储在任何地方。在这个例子中,我使用了SchoolRepository,它查询数据库以获得学校列表,然后将它们传输到选择列表中——不再硬编码学校名称。您可以实现任何类型的数据存储。