2011-07-07 3 views
2

に設定しました。私のMVC 3モデルのressourcesを使用するより簡単でより乾燥した方法をお探しです。モデルの属性の既定のリソースタイプをC#

これは、(各属性は、それが使用するressourceタイプ告げする必要があります)私は今それをやっている方法です:

public class ContactMessageModel:BaseModel 
    { 
     [Display(Name="ReplyToEmail_DisplayName", ResourceType = typeof(Res.Views_Contact))] 
     public string ReplyToEmail {get; set; } 

     [Display(Name = "ContactReason_DisplayName", ResourceType = typeof(Res.Views_Contact))] 
     public string ContactReason { get; set; } 

はこれを行うことができますか?

これは私が(私は一度だけモデルのリソースタイプを定義したい)それを行うしたい方法です:属性のインスタンスがアクセスを必要とするので、

[Display(ResourceType = typeof(Res.Views_Contact))] 
public class ContactMessageModel:BaseModel 
{ 
    [Display(Name="ReplyToEmail_DisplayName")] 
    public string ReplyToEmail {get; set; } 

    [Display(Name = "ContactReason_DisplayName")]    
    public string ContactReason { get; set; } 
+0

試しましたか? –

+0

err yes :)。エラー:属性 'Display'はこの宣言型では無効です。 'method、property、indexer、field、param'宣言でのみ有効です。 – AyKarsi

答えて

1

は、可能性は見えません座っているプロパティ。これは.NETではサポートされていません。

0

はい、デフォルトのResourceTypeを実行できます。

http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/

あなたは、単一のResourceTypeがへのデフォルト、グローバルに、または飾ることができます:フィル・ハークは、これを達成し、何度も同じResourceTypeが指定自分自身を繰り返すことを防止するために、.NETのModelMetadataProvidersを無効にする方法の例を示していますこの属性を使用してデフォルトの特定のクラスを定義します。

public class MetadataConventionsAttribute : Attribute 
{ 
    public Type ResourceType { get; set; } 
} 
関連する問題