2011-11-10 120 views
0

如果我有一个模型部分文件解析模型部分显示名称,查看模型模板

[MetadataType(typeof(ClassAMetadata))] 
public partial class ClassA: IStructualObject 
{ 
} 

public class ClassAMetadata 
{ 
    [DisplayName("Var B:")] 
    public object VarB { get; set; } 
} 

和VAR B是一个DateTime!

然后,我有一个ViewModel(ClassAViewwModel)为控制器使用ClassA,在这个ViewModel我ClassA,它也有一个DateTimeViewModel的VarB,原因是在我的应用程序DateTime显示为3个字段日期,小时和分钟。

然后,我为我的DateTimeViewModel创建了一个模板。看到代码:

@model ViewModels.DateTimeViewModel 
<div > 
    <span class="editor-label"> 
     @Html.LabelFor(m => m) 
    </span> 
    <span class="editor-field"> 
     @Html.TextBoxFor(m => m.Date, new { id = "[email protected]_" + ViewData["cssname"] + "_resource_date", @class="datepicker dato", maxlength="10"}) 
    </span> 
    <span class="editor-field"> 
     @Html.TextBoxFor(m => m.Hour, new { id = "participating_airborne_" + ViewData["cssname"] + "_resource_hours", @class = "time", maxlength = "2" }) 
    </span>:<span class="editor-field"> 
     @Html.TextBoxFor(m => m.Minute, new { id = "participating_airborne_" + ViewData["cssname"] + "_resource_minutes", @class = "time", maxlength = "2" }) 
    </span> 
    <span> 
     @Html.ValidationMessageFor(m => m.Date) 
     @Html.ValidationMessageFor(m => m.Hour) 
     @Html.ValidationMessageFor(m => m.Minute) 
    </span> 
</div> 

什么话,我想就是以某种方式得到我的VarB显示名称中显示,当我做@ Html.LabelFor(M => M)在我DateTimeViewModel(或类似的东西),所以我需要一种方法来读取部分信息,这可能吗?

回答

1

您应该能够从模型元数据为当前模型得到的显示名称,如:

ViewData.ModelMetadata.GetDisplayName() 

编辑:

如果你有浏览模式:

然后在ClassA视图中呈现该属性,如:

@Html.EditorFor(x => x.VarB) 

然后,它应该使用您的DateTimeViewModel模板,并能够从模型元数据中提取显示名称。

+0

如果我在我的视图与ClassAViewModel,然后如果我做你写什么我会得到ClassA的显示名称,我似乎无法让它显示的ClassAViewModel中的属性 – Mech0z