N2CMS 使用标准 .net 枚举来定义可编辑下拉列表的选项。
我的下拉选项需要包含空格,但当然你不能在枚举项名称中包含空格。
我曾希望可以应用某种属性来定义选项的文本。但是我看不到任何似乎可以做到的地方。
我最终设法弄清楚了如何做到这一点(通过阅读 N2 源代码)。您使用全局资源文件。
特别是,对枚举中的每个项目EditableEnumAttribute
调用HttpContext.GetGlobalResourceObject
(通过调用)中的代码。Utility.GetGlobalResourceString
因此,要让枚举名称中包含空格(和其他特殊字符),您需要添加一个与枚举名称匹配的全局资源文件,并为每个需要特殊字符的枚举项添加一个条目。
您需要做的第一件事是将App_GlobalResources
文件夹添加到项目的顶层。这很重要,就像您使用 VS.NET 在其他地方创建资源文件一样,它们不会被创建为全局文件。
接下来创建一个App_GlobalResources
与枚举名称匹配的资源文件。它只需要匹配枚举的短名称,而不是完整的命名空间前缀名称。
现在在资源文件中为每个枚举项创建一个条目,枚举项名称在Name
列中,名称包括列中的特殊字符Value
。您不需要为每个枚举项添加一个条目,只需为具有特殊字符的那些项添加一个条目(尽管将它们全部添加可能是有意义的)。