Asp.net mvc TagBuilder和AntiXss库

Asp.net mvc TagBuilder和AntiXss库,asp.net-mvc,Asp.net Mvc,我试图使用TagBuilder构建一个包含多个类的标记,但遇到了一个障碍。我们使用反XSSENCODER。当我向TagBuilder添加多个类时,它显然会在某个时候调用encode 这在默认环境中可能会起作用,但是如果编码器被更严格的东西替换,那么像我的class属性中的空格就被编码了,等等,这会破坏所有类型的东西 是否有任何方法可以关闭给定TagBuilder实例的属性编码?这似乎是.NET 4.0的一个问题,因此如果您想使用TagBuilder,而不仅仅是连接字符串,当然如果您不想使用默认功

我试图使用TagBuilder构建一个包含多个类的标记,但遇到了一个障碍。我们使用反XSSENCODER。当我向TagBuilder添加多个类时,它显然会在某个时候调用encode

这在默认环境中可能会起作用,但是如果编码器被更严格的东西替换,那么像我的class属性中的空格就被编码了,等等,这会破坏所有类型的东西


是否有任何方法可以关闭给定TagBuilder实例的属性编码?

这似乎是.NET 4.0的一个问题,因此如果您想使用TagBuilder,而不仅仅是连接字符串,当然如果您不想使用默认功能,这可能是一个更好的主意

但是,正如在这个问题中所解释的,您可以创建自己的HttpEncoder重写,它不会转义字符串


有关更多详细信息,请参见此问题和公认的答案:

我看到了。这不是一个不可接受的答案。。。对任何人来说都是真的,所以我不敢相信那里没有人说过什么。这基本上关闭了所有内容的输出编码,而不仅仅是TagBuilder。这就好比说这把锁很烦人,所以我就把门关了。在将其传递给HtmlString之前,我暂时通过对builder.ToString进行HTMLUN编码来解决这个问题。哈哈。喜欢你的比喻:而且,你确实有道理。当然,您可能会向自定义TagBuilder添加一个属性,告诉它不要对这个特定实例进行输出编码,但是,我现在想不出细节。