1

我将如何将[AllowHtml]属性添加到实体框架生成的类中而不会在下次生成代码时覆盖该属性?

我希望简单地允许 CKEditor 使用 Razor 将信息发布回我的 MVC4 应用程序,而不必[ValidateReuqest(false)]在我的Content实体类上使用。

4

2 回答 2

9

您可以使用该[MetadataType]属性将元数据/属性永久添加到您的类,而无需编辑原始类。

对于该类Content,在您的项目中创建一个新的 cs 文件并将空类替换为:

[MetadataType(typeof(ContentMetadata))]
public partial class Content
{

}

public class ContentMetadata
{
    [AllowHtml]
    public string ContentHtml { get; set; }
}

部分类名必须与实体类的类名完全匹配,属性必须与实体类中属性的定义完全匹配。

重建后,这将像您将属性放在实体类中一样工作,但额外的好处是不会每次都被覆盖。

于 2013-07-31T07:36:39.857 回答
0

将一个新的 C# 部分类文件添加到与您的实体类同名的模型文件夹中,并在那里应用该属性。确保部分类的命名空间匹配,否则它们会被视为不同的类。

您可以使用相同的部分类来设置其他属性,例如[Display(Name="xxx")]其他属性。

于 2017-03-02T16:24:50.520 回答