Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以阻止.NET4.0对单引号进行编码吗?_C#_Javascript_.net_Encoding_.net 4.0 - Fatal编程技术网

C# 我可以阻止.NET4.0对单引号进行编码吗?

C# 我可以阻止.NET4.0对单引号进行编码吗?,c#,javascript,.net,encoding,.net-4.0,C#,Javascript,.net,Encoding,.net 4.0,切换到.NET4.0后,来自第三方gridview的一些javascript代码崩溃。 这跟我有点关系 在页面上插入一些代码之前,如下所示: DataItem.GetMember('Id').Value 现在它是这样的:DataItem.GetMember(';Id';).Value gridview在该行执行eval,现在由于语法错误而崩溃。我无法更改该gridview中的javascript代码 有没有办法解决这个问题,而不是像这样倒退 <pages controlRend

切换到.NET4.0后,来自第三方gridview的一些javascript代码崩溃。 这跟我有点关系

在页面上插入一些代码之前,如下所示:
DataItem.GetMember('Id').Value

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

gridview在该行执行
eval
,现在由于语法错误而崩溃。我无法更改该gridview中的javascript代码

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

<pages controlRenderingCompatibilityVersion="3.5" /> 


编辑:pages ControlRendering Compatibility版本也无法解决此问题。单引号仍然是编码的。

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

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"/>


您使用的是webforms还是mvc?一个有趣的问题。“eval”是邪恶的,所以不幸的是你被困在里面了(看起来我可以在进入黑匣子之前更改最终在eval中的代码,所以我很好。但是我会为遇到相同问题的其他人保留这个问题