【发布时间】:2019-08-22 16:13:58
【问题描述】:
我正在使用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;
我需要能够从模型中设置默认值
【问题讨论】:
-
也许您应该发布 实际 代码,而不是尝试重新创建近似值。我相当确定该类实际上不是“ViewModel”,并且例如具有不止一个属性。此外,在您看来,您绑定到
Model.AcademicInfo.ClassLevel,这里根本没有表示。这个问题很可能归结为你不包括在内的部分 -
对不起,我没有把所有的代码都贴出来,我做不到。但事实证明我绑定到了错误的模型,看起来是一件小事,但很难找到。谢谢@ChrisPratt,解决了它。
-
@Html.DropDownListFor(x => x.ClassLevel, Html.GetEnumSelectList<ClassLevel>())是我改成的。
标签: c# html asp.net-core razor enums