根据我使用Class的位置,我希望能够显示不同的DisplayName 我有以下课程:
[MetadataType(typeof(PortalMetaData))]
[System.Web.Mvc.Bind(Exclude = "PortalId")]
public partial class Portal
{
public Portal()
{
this.Created = DateTime.Now;
}
}
public class PortalMetaData
{
[Required(ErrorMessage = "Portal name is required")]
[StringLength(50, ErrorMessage = "Portal name must be under 50 characters")]
public object PortalName { get; set; }
[Required(ErrorMessage = "Description is required")]
public object Description { get; set; }
}
我在数据库门户中有相应的表
我使用带有PortalController的Portal表来为站点管理员更新门户表中的记录。
我希望具有不同角色(AsstAdmin)的其他用户也能够更新此表 为了方便我,我正在考虑创建一个单独的部分类,以某种方式链接回Portal模型。这将允许我显示AsstAdmin更新的有限字段,我也可以为字段显示不同的名称。
如何完成此任务? 如果我添加以下继承自Portal的类,则会得到异常:
无法投射类型的对象 输入'Project1.Mvc.Models.Portal' 'Prpject1.Mvc.Models.Site'。
[MetadataType(typeof(SiteMetaData))]
public class Site : Portal
{
public Site() { }
}
public class SiteMetaData
{
[Required(DisplayName = "Site Description")]
public object Description { get; set; }
}
答案 0 :(得分:1)
您可以创建两个不同的视图模型,这些模型只包含每种类型的用户都可以看到的字段。保存时,您将需要一个服务来执行适当的映射回Portal实体。