C#を使用してMVCWebアプリケーションを構築しています。サイトは多言語対応になるため、独自のResourceManagerを実装しました。このクラスは、現在のスレッドカルチャに応じてデータベース/キャッシュから必要なリソース文字列をフェッチする役割を果たし、これまでのところ正常に機能しています。
私の問題は、たとえばプロパティで必須属性を使用する場合に、カスタムResourceManagerソリューションを使用して検証エラーメッセージをフェッチしたいということです。これはできますか?
RequiredAttribute は カスタムリソースマネージャー の使用を許可します:
[Required(
ErrorMessageResourceType = typeof(CustomResourceManager),
ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }
更新:
もう1つの可能性は、カスタム属性を作成することです。
public class CustomRequiredAttribute : RequiredAttribute
{
public override string FormatErrorMessage(string name)
{
return YourCustomResourceManager.GetResource(name);
}
}