リソースからの表示名の取得
ローカライズされたアプリケーションでは、開発者はモデル プロパティのわかりやすいラベルを表示する必要があることがよくあります。 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 中国語 Web サイトの他の関連記事を参照してください。