Html.DropDownListFor 按布尔值分组 - 显示字符串而不是布尔值
Html.DropDownListFor grouping by bool - show string instead of bool value
我正在使用 Html.DropDownListFor()
显示包含列表数据的下拉菜单。列表项有一个名为 IsPublic
的布尔值 属性,定义此项是否为 public。
这是我定义下拉菜单的方式:
@Html.DropDownListFor(m => m.SelectedLayout,
new SelectList(Model.Layout, "LayoutString", "LayoutName", "IsPublic", 1))
如您所见,我按 属性 IsPublic
分组。正如预期的那样,分组是按以下方式完成的,组的命名如下:
注意分组是如何通过布尔值(true
和 false
)完成的。
有没有办法让我将此分组显示为自定义字符串,但仍按布尔值分组?因此,如果 IsPublic == true
将分组名称显示为 Public
,反之亦然 IsPublic == false
将分组名称显示为 Private
?
您可以在 class 中简单地使用 get only 属性,并将其用于分组。
public string DisplayPublic {
get { return IsPublic ? "Public" : "Private"; }
}
我正在使用 Html.DropDownListFor()
显示包含列表数据的下拉菜单。列表项有一个名为 IsPublic
的布尔值 属性,定义此项是否为 public。
这是我定义下拉菜单的方式:
@Html.DropDownListFor(m => m.SelectedLayout,
new SelectList(Model.Layout, "LayoutString", "LayoutName", "IsPublic", 1))
如您所见,我按 属性 IsPublic
分组。正如预期的那样,分组是按以下方式完成的,组的命名如下:
注意分组是如何通过布尔值(true
和 false
)完成的。
有没有办法让我将此分组显示为自定义字符串,但仍按布尔值分组?因此,如果 IsPublic == true
将分组名称显示为 Public
,反之亦然 IsPublic == false
将分组名称显示为 Private
?
您可以在 class 中简单地使用 get only 属性,并将其用于分组。
public string DisplayPublic {
get { return IsPublic ? "Public" : "Private"; }
}