Eri*_*ker 7 .net javascript c# encoding .net-4.0
切换到.net 4.0后,来自第三方gridview的一些javascript代码崩溃了.它与HtmlEncode有关,而UrlEncode现在编码单引号
所以在页面上的某些代码插入之前如下:
DataItem.GetMember('Id').Value
现在它是这样的: DataItem.GetMember('Id').Value
gridview eval在该行上执行,并且现在崩溃并出现语法错误.我无法更改该gridview中的javascript代码.
无论如何要解决这个问题,而不是像这样倒退吗?
<pages controlRenderingCompatibilityVersion="3.5" />
Run Code Online (Sandbox Code Playgroud)
编辑:页面controlRenderingCompatiblityVersion也不解决这个问题.单引号仍然是编码的.
据我所知,这是一项安全功能,微软对改变它保持沉默。我见过的唯一解决方法是您需要创建一个自定义编码器类。您可以使用以下方法关闭属性编码:
public class HtmlAttributeEncodingQuote : System.Web.Util.HttpEncoder
{
protected override void HtmlAttributeEncode(string value, System.IO.TextWriter output)
{
output.Write(value);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其添加到system.web下的 web.config 中:
<httpRuntime encoderType="HtmlAttributeEncodingQuote"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |