如何在 DropDownListFor 中设置模型的默认值?

我用来DropDownListFor创建枚举的下拉列表。我正在创建一个编辑个人资料页面,允许用户在该级别进行编辑,因此我希望默认情况下选择他们在个人资料中的内容,以防万一他们不想更改该字段。因此,如果他们的个人资料中有大二学生,下拉列表应默认选择所选的大二学生。如何将默认值设置为来自模型(或数据库)的值?


我尝试添加像这样的选项标签,但它添加了一个我不需要的额外选择项。我只需要选择模型中已有的内容即可。


@Html.DropDownListFor(x => x.AcademicInfo.ClassLevel, Html.GetEnumSelectList<ClassLevel>(), Model.ClassLevel.ToString())

模型:


public class ViewModel

{

 [Display(Name = "Class Level")]

 public ClassLevel ClassLevel { get; set; }

}

视图中的 HTML:


@Html.DropDownListFor(x => x.AcademicInfo.ClassLevel, Html.GetEnumSelectList<ClassLevel>())

枚举:


public enum ClassLevel

{

    Freshman = 1,

    Sophomore = 2,

    Junior = 3,

    Senior = 4

    //Other = 5

}

我如何将其添加到模型中:


ViewModel model = new  ViewModel();

model.ClassLevel = (ClassLevel)latestYear.ClassLevelId;

我需要能够从模型中设置默认值


呼唤远方
浏览 93回答 1
1回答

翻阅古今

当您将数据映射到视图模型时,这种情况就会自然发生。换句话说,如果实体已ClassLevel设置为ClassLevel.Sophmore,那么您可以将该值映射到ClassLevel视图模型上的属性,该属性也将是ClassLevel.Sophmore。然后,由于您已将选择绑定到ClassLevel属性,因此下拉列表的值将自动设置为属性的值,即ClassLevel.Sophmore在本例中。
打开App,查看更多内容
随时随地看视频慕课网APP