我有一些接口和类
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; }
}在我尝试使用的View上,View是强类型的成员
在此行显示来自DisplayAttribute的正确消息
<%= Html.LabelFor(m => m.Login) %>在该行上,它不显示来自DisplayAttribute的正确标签
<%= Html.LabelFor(m => m.Role.Name) %>我如何解决这个问题,使其在这样的体系结构中具有正确的标签?
谢谢
附言:我知道如何将DisplayAttribute添加到接口字段中,一切都会正常工作,但可能会有不同的解决方案。
发布于 2010-04-16 22:00:16
这里的一切都在按设计进行。
你已经知道你的答案了。如果要显示IRole的表单,则还必须具有IRole上的属性。
为了拥有正确的标签,您必须实现自己的TypeDescriptors或ModelMetadataProvider,以便将接口的元数据“混入”到实现它们的任何具体类中。
这很快就会变得非常复杂。
为什么不能直接将属性添加到IRole接口呢?
https://stackoverflow.com/questions/2652811
复制相似问题