使用MvcContrib.FluentHtml选择列表的默认选择值

时间:2011-07-25 11:10:40

标签: mvccontrib selectlist

我定义了以下选择列表:

<%= this.Select("Scope")
        .Options(Scopes.AllValues) // static property to get all possible values
        .FirstOption("Select scope")
        .Class("required")
        .Selected(Model.Scope) %>

其中Scope是这样定义的枚举:

public enum Scope
{
    Full,
    Partial
}

我在用户控件上使用它,它为渲染/编辑表单呈现所有表单元素,因此我希望在存在底层模型时以及模型只是一个没有属性的空editmodel时都可以使用它组。但是,由于Scope是结构,因此在实例化编辑模型时,它会初始化为默认值(这是第一个定义的枚举值,Full)。因此,永远不会选择Select value选项。

我知道Model.ID == 0代表新对象,而Model.ID != 0代表现有对象,所以我可以用它来确定应该显示的内容。但是,如果我这样做

.Selected(Model.ID != 0 ? Model.Scope : null) // how do I indicate the first item?

我收到编译错误,因为nullScope之间没有转换(因为Scope是结构)。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题:使用重载.FirstOption(string value, string text)我可以为第一个选项分配一个值,然后在未设置范围的情况下将其用作回退。