我有一个enum OType:
public enum OType
{
First_enum_option,
Second_enum_option,
None_of_the_above
}
我的模型有一个这种类型的枚举字段EType,它在视图中显示为:
@Html.DisplayFor(x => x.EType)
在视图中,选项显示正确。但我想用空格替换下划线。对于普通字符串,我通常使用Replace("_", " ")
如果我使用:@Html.DisplayFor(x => x.EType.ToString().Replace("_", " "))
,我会收到带有消息的System.InvalidOperationException:
模板只能用于字段访问,属性访问,单维>数组索引或单参数自定义索引器表达式。
我想到了这个解决方案:
<td>
@{
string str = item.EType.ToString().Replace("_", " ");
}
@str
</td>
这解决了这个问题。是否有任何简洁而优雅的方法来实现这一目标?
答案 0 :(得分:1)
将您的枚举更改为:
public enum OType
{
[Display(Name = "First enum option")]
First_enum_option,
[Display(Name = "Second enum option")]
Second_enum_option,
[Display(Name = "None of the above")]
None_of_the_above
}
并使用,
@Model.EType.GetDisplayValue()
在你看来。
答案 1 :(得分:0)
使用:
@Html.DisplayFor(x => x.EType).ToString().Replace("_", " ")