gpt4 book ai didi

c# - 使用 ASP.NET MVC 5,如何获取 View 中枚举值的本地化 DisplayAttribute 字符串?

转载 作者:行者123 更新时间:2023-11-30 18:24:15 28 4
gpt4 key购买 nike

如果我在 Enum 值上使用 DisplayAttribute,如何根据 Enum 值获取本地化资源值。

例如,如果我有一个 Enum 定义如下:

public enum ExpireMode {
[Display(ResourceType = typeof (ModelRes.ExpireMode), Name = "Never")]
Never = 0,

[Display(ResourceType = typeof (ModelRes.ExpireMode), Name = "ByCreated")]
ByCreated = 1,

[Display(ResourceType = typeof (ModelRes.ExpireMode), Name = "ByLastAccessed")]
ByLastAccessed = 2,
}

而且,我们假设我已经创建了一个 .resx 文件,其中包含以下内容的 ModelRes 自定义命名空间:

enter image description here

如果我只有枚举的值,我该如何检索正确的本地化值?我想使用正确的本地化值在 View 中显示。

我看过使用类型转换器、扩展方法等的解决方案,但似乎都添加了很多代码,应该是相对简单的。将 DisplayAttribute 用于所有其他目的使得本地化变得非常微不足道,因为它在内部处理它。

最佳答案

我发现无需任何额外代码即可解决此问题的最简单方法是在 View 本身中添加以下代码:

@ModelRes.ExpireMode.ResourceManager.GetString(Model.ExpireMode.ToString())

Model.ExpireModeEnum 类型 ExpireMode 模型的一个属性。 ModelRes 是资源类 ExpireMode 的自定义命名空间。我获取 ResourceManager 并使用枚举值的字符串表示调用 GetString,这为我提供了正确本地化的值。

关于c# - 使用 ASP.NET MVC 5,如何获取 View 中枚举值的本地化 DisplayAttribute 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com