2010-04-16 48 views
0

我有一些接口和類ASP.NET MVC DisplayAttribute和接口

public inteface IRole 
{ 
    int Id { get; } 
    string Name { get; set; } 
} 

public class Role : IRole 
{ 
    public int Id { get; } 
    [Display("Role Name")] 
    public string Name { get; set; } 
} 

public class Member 
{ 
    [Display("Login")] 
    public string Login { get; set; } 
    [Display("Password")] 
    public string Password { get; set; } 
    public IRole Role { get; set; } 
} 

上查看我嘗試使用,查看是強類型的會員

的從DisplayAttribute

此行顯示正確的消息
<%= Html.LabelFor(m => m.Login) %> 

在這條線不從DisplayAttribute

顯示正確的標籤
<%= Html.LabelFor(m => m.Role.Name) %> 

我該如何解決這個問題在這樣的架構中有正確的標籤?

謝謝

P.S.我知道如何將DisplayAttribute添加到接口字段,並且全部都可以工作,但也許有不同的解決方案。

回答

1

一切工作正如這裏所設計的。

你已經知道了你的答案。如果您顯示IRole的表單,則還必須具有IRole的屬性。


爲了讓你不得不實現自己的TypeDescriptors或ModelMetadataProvider正確的標籤,以「斯馬什」在一起的元數據接口爲實現他們的任何具體的類。

這將變得非常複雜真正快速。

爲什麼你不能只添加屬性到IRole接口?