当其中一个枚举值为0时,EnumDropDownListFor?

时间:2017-03-13 12:29:59

标签: asp.net-mvc

我正在使用ASP.NET MVC应用程序。我正在使用的数据库是遗留数据库。

在我的代码中,我有一个看起来像这样的枚举:

public enum Fruit
{
    Apple = -1,
    None = 0,
    Orange = 1
}

我无法改变这一点,当我尝试在Razor View中执行此操作时:

@Html.EnumDropDownListFor(m => m.Fruit, "Select a fruit", new { @class = "form-control" })

当我希望加载选择水果

时,视图加载总是被选中

实现这一目标的最简洁方法是什么?我可以在JavaScript中破解它,但是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

通过在我的视图模型中使Fruit Enum可以为空,我能够获得默认文本:

public class FruitContainer
{
    public Fruit? Fruit;
}

在视图中:

@ModelType FruitContainer
@Html.EnumDropDownListFor(m => m.Fruit, "Select a fruit", new { @class = "form-control" })

如果下拉列表仍然没有选择默认文本,您可能会确保从控制器传递给视图的任何模型确实将其Fruit属性设置为null。