2011-11-10 86 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