7

切换到 .net 4.0 后,来自第三方 gridview 的一些 javascript 代码崩溃。它与HtmlEncode 和 UrlEncode 有关,现在编码单引号

所以在页面上的一些代码被这样插入之前: DataItem.GetMember('Id').Value

现在是这样的:DataItem.GetMember('Id').Value

gridvieweval在那一行上做了一个,现在崩溃并出现语法错误。我无法更改该gridview 中的javascript 代码。

有没有办法解决这个问题,而不是像这样倒退?

<pages controlRenderingCompatibilityVersion="3.5" /> 

编辑:页面 controlRenderingCompatiblityVersion 也不能解决这个问题。单引号仍然被编码。

4

1 回答 1

1

从我读到的内容来看,这是一项安全功能,微软对改变它保持沉默。我见过的唯一解决方法是您需要创建一个自定义编码器类。您可以使用以下方法关闭属性编码:

public class HtmlAttributeEncodingQuote : System.Web.Util.HttpEncoder
{
    protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output)
    {
        output.Write(value);
    }
}

然后将其添加到system.web下的 web.config :

<httpRuntime encoderType="HtmlAttributeEncodingQuote"/>
于 2012-06-15T13:50:19.713 回答