2012-02-07 9 views
0

のDisplayAttributeを取得します。私は次のように定義されたビューモデルを持っているParentプロパティ

public class VariableViewModel 
{ 
    public string TemplateName { get; set; } 
    public bool Enabled { get; set; } 
    public string Value { get; set; } 
} 

私は他のビューモデルで、このモデルを使用しています:

public class CreateViewModel 
{ 
    [Display(Name="First Name")] 
    public VariableViewModel FirstName { get; set; } 

    [Display(Name="Last Name")] 
    public VariableViewModel LastName { get; set; } 
} 

を私が定義されたエディタのテンプレートを持っていますVariableViewModel:

@model VariableViewModel 

@Html.HiddenFor(model => model.TemplateName) 
@Html.HiddenFor(model => model.Enabled) 
@Html.LabelFor(model => model.Value) 
@Html.TextBoxFor(model => model.Value) 

私CreateViewModelためのエディタテンプレート:

次のように
@model CreateViewModel 

@Html.EditorFor(model => model.FirstName) 
@Html.EditorFor(model => model.LastName) 

は今のところ、私のエディタテンプレートは、ラベルを作成します

<label for="FirstName">Value</label> 

は、それが使用すべきかを決定するために、親プロパティのDisplayAttributeを見ている方法でLabelForを変更することが可能です価値を持つ代わりに?

<label for="FirstName">First Name</label> 
<label for="LastName">Last Name</label> 

問題は、表示属性が私は、しかし含むオブジェクトのラベルを作成していますプロパティではないということです:私は私のラベルが見えるようにしたいです。私が欲しいものを達成する方法はありますか?お使いのエディタのテンプレートで

答えて

5

は単にラベルに次のコマンドを使用します。

@Html.LabelFor(model => model.Value, ViewData.ModelMetadata.DisplayName) 

私たちは、ラベルの値として、親の表示名を渡しています。

関連する問題