gpt4 book ai didi

c# - 资源中的 DisplayName 属性?

转载 作者:IT王子 更新时间:2023-10-29 03:31:00 26 4
gpt4 key购买 nike

我有一个本地化的应用程序,我想知道是否可以从资源中为某个模型属性设置 DisplayName

我想做这样的事情:

public class MyModel {
[Required]
[DisplayName(Resources.Resources.labelForName)]
public string name{ get; set; }
}

但我不能这样做,正如编译器所说:“属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式”:(

有什么解决方法吗?我正在手动输出标签,但我需要这些标签用于验证器输出!

最佳答案

如果您使用 MVC 3 和 .NET 4,您可以使用新的 Display System.ComponentModel.DataAnnotations 命名空间中的属性。此属性取代了 DisplayName 属性并提供更多功能,包括本地化支持。

在你的情况下,你会像这样使用它:

public class MyModel
{
[Required]
[Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))]
public string name{ get; set; }
}

作为旁注,此属性不适用于 App_GlobalResourcesApp_LocalResources 中的资源。这与这些资源使用的自定义工具 (GlobalResourceProxyGenerator) 有关。相反,请确保您的资源文件设置为“嵌入式资源”并使用“ResXFileCodeGenerator”自定义工具。

(作为进一步的旁注,您不应该将 App_GlobalResourcesApp_LocalResources 与 MVC 一起使用。您可以阅读更多关于为什么会这样的信息 here )

关于c# - 资源中的 DisplayName 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2431333/

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