2016-02-02 66 views
2

我有一個具有相同類型的屬性模型類(製造等級):自定義顯示名稱爲父對象的同一屬性

public class OrganizationalChart : Model 
{ 
    public Guid? ParentId { set; get; } 
    public virtual OrganizationalChart Parent { set; get; } 
    public string Name { set; get; } 
} 

在我Razor查看文件:

@Html.DisplayFor(modelItem => item.Name) 
@Html.DisplayFor(modelItem => item.Parent.Name) 

這兩行顯然打印Name。當我使用[Display(Name="Role Name")]時情況是一樣的。

我希望的功能是能夠爲當前對象的Name屬性和父對象的Name屬性設置不同的顯示名稱。

有沒有辦法做到這一點,而不使用自定義HTML標籤?

回答

1

不可以。無法覆蓋子實例上的顯示名稱。但是,根據您的使用情況,可能會有選項。例如,如果你使用Html.LabelFor,這需要一個參數,它允許您指定標籤文本:

@Html.LabelFor(modelItem => item.Name) 
@Html.LabelFor(modelItem => item.Parent.Name, "Parent Name") 

Html.DisplayNameFor沒有意義在這種情況下使用,因爲它所做的只是輸出簡單的字符串(顯示名稱)。因此,沒有任何「自定義HTML」;你可以硬編碼你想要的名字。 Html.DisplayFor根本沒有顯示屬性名稱,所以我不確定你期望什麼。

相關問題