我编写了以下EnumDropDownList:
<div class="form-group">
@Html.LabelFor(model => model.SecurityClearance, htmlAttributes: new { @class = "control-label col-md-2 required-label" })
<div class="col-md-10">
@Html.EnumDropDownListFor(model => model.SecurityClearance, new { @class = "form-control", data_ng_model = "model.user.SecurityClearance", required = "required"})
@Html.ValidationMessageFor(model => model.SecurityClearance, "", new { @class = "text-danger" })
</div>
</div>
由以下枚举填充:
public enum SecurityClearance
{
NONE = 0,
INTERIM = 1,
CONFIDENTIAL = 2,
SECRET = 3,
TOPSECRET = 4,
TOPSECRETSCI = 5
}
一切都很好,到了一定程度。列表将正确填充,我可以选择一个值,并将该值保存到数据库中。问题在Save()之后开始。在每个Save()之后,下拉列表中的当前值将自行清除。数据库仍具有正确的值,但它不会显示在视图中。最后,我添加了这个来查看:
{{model.user.SecurityClearance}}
这行代码求值为与所选枚举的索引相对应的整数。即使在下拉列表'wipes'之后,Angular表达式仍将继续评估为正确的索引。
我假设我的问题是数据库在每次保存后都返回整数。这是有道理的,因为数据库将索引存储为整数而不是单词本身。
我的问题是:我在这个假设中是否正确?如果是这样,我如何将索引转换回正确的单词?