從資源中擷取顯示名稱
在在地化應用程式中,開發人員經常需要為模型屬性顯示使用者友善的標籤。雖然 DisplayName 屬性允許指定靜態顯示名稱,但在某些情況下可能需要從外部來源(例如資源檔案)動態檢索這些名稱。
不幸的是,單獨使用 DisplayName 屬性並不能提供從資源指定動態值的能力。遇到編譯器錯誤“屬性參數必須是屬性參數類型的常數表達式、typeof 表達式或陣列建立表達式”,表示提供的參數必須是靜態值。
解決方法.NET 4 和MVC 3
對於使用MVC 3 和.NET 4 的應用程序,透過使用更新的Display 屬性可以找到解決方案System. ComponentModel.DataAnnotations 命名空間。此屬性擴展了其前身的功能,包括利用本地化的能力。
要使用此屬性,請如下修改您的模型:
public class MyModel { [Required] [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))] public string name { get; set; } }
注意:此解決方法要求將資源檔案標記為「嵌入式資源”並使用“ResXFileCodeGenerator”自訂工具。此外,App_GlobalResources 或 App_LocalResources 不應與 MVC 一起使用。
以上是如何從 .NET 中的資源文件動態檢索顯示名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!