我定义了以下选择列表:
<%= 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?我得到了一个编译器错误,因为在null和Scope之间没有转换(因为Scope是一个结构)。
我该如何做到这一点呢?
发布于 2011-07-29 23:13:58
我解决了这个问题:使用重载.FirstOption(string value, string text),我可以为第一个选项赋值,然后在没有设置作用域的情况下使用它作为后备。
https://stackoverflow.com/questions/6815156
复制相似问题