如何在C#中使用继承对象中的不同属性

时间:2015-11-17 15:21:03

标签: c# asp.net-mvc annotations attributes

我正在开发一个Web应用程序,其中不同的用户角色应具有不同的安全权限(查看,编辑)。为了实现这一点,我有一个自定义属性[ReadOnlyAuthorize(“Supervisor,Administrator,SysAdministrator”)]。

当使用此属性标记字段且用户没有这些角色之一时,我的编辑器模板会将该字段标记为只读和禁用。

问题在于,通过在创建,编辑和搜索操作中使用相同的模型,我获得了相同的功能,这不是我想要的。这看起来非常糟糕,但它是一个临时解决方案。

除了使用新的和定义新属性之外,还有办法覆盖这些注释吗?

我希望这个描述对你有意义,这些是我课程的一部分:

[MetadataType(typeof(AssetMetadata))]
public partial class DTAsset
{
}

public class AssetMetadata
{
    [ReadOnlyAuthorize("SysAdministrator")]
    [DisplayName("Asset ID:")]
    public string AssetID { get; set; }
}

public class AssetSearchViewModel : AssetMetadata
{
    // removed [ReadOnlyAuthorize("SysAdministrator")]
    [DisplayName("Asset ID:")]
    public string AssetID { get; set; }
}

0 个答案:

没有答案