动态更改数据集列的显示值

本文关键字:显示 数据集 动态 | 更新日期: 2023-09-27 18:37:11

几个月前我修复了这个问题,它一定完全离开了我的脑海,而且由于我刚刚在我的 MVC3 站点上更新了我的数据模型(从数据库更新模型)它再次被破坏。我正在得到

从客户端检测到具有潜在危险的 Request.Form 值

错误。关于更改 web.config 中的某些设置,已经有很多问题了,但我从未能够让这些设置工作。上次修复它时,我 99% 确定我更改了此生成的文件中的某些内容:

[DataContract(IsReference = true)]
[KnownType(typeof(Blog))]
[KnownType(typeof(Comment))]
public partial class Post
{
    public Post()
    {
        this.Comments = new HashSet<Comment>();
    }
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Title { get; set; }
    [DataMember]
    public System.DateTime DateCreated { get; set; }
    //[SOMETHING HERE??]
    [DataMember]
    public string Content { get; set; }
    [DataMember]
    public string Tags { get; set; }
    [DataMember]
    public int BlogId { get; set; }
    [DataMember]
    public virtual Blog Blog { get; set; }
    [DataMember]
    public virtual ICollection<Comment> Comments { get; set; }
} 

但是我一辈子都不记得是什么,我不确定要在网上搜索什么词。

而且我知道编辑生成的代码是一件很愚蠢的事情,但我还没有弄清楚如何解决这个问题。

动态更改数据集列的显示值

您正在寻找[AllowHtml]属性:

[AllowHtml]
[DataMember]
public string Content { get; set; }

而且我知道编辑生成的代码是一件愚蠢的事情,但是 我还没有想出如何解决这个问题。

问题是您将 WCF 域实体传递到视图/从视图传递,这是一种非常糟糕的设计方法。

正确的方法是使用视图模型。视图模型是您专门为满足视图要求而设计的类,然后仅将视图模型传递给视图。然后,您将在域模型和视图模型之间进行映射。自动映射器是简化此任务的好工具。