ASP.NET 4.0 DropDownList,文本中带有单引号

Ant*_*nyJ 6 asp.net encoding asp.net-4.0 drop-down-menu

我们有一个asp:DropDownList,我们在服务器端填充

ddlBranch.Items.Add(new ListItem("TEST","This is a's test"));
Run Code Online (Sandbox Code Playgroud)

当这是在.NET 3.5下编译和运行时,我们看到文本"这是一个测试"

但是,当在.NET 4.0下编译和运行时,我们会看到文本"这是一个'测试"

我们在web.config中添加了以下内容,但没有任何更改.

<pages controlRenderingCompatibilityVersion="3.5" />
Run Code Online (Sandbox Code Playgroud)

目前我们已经退回到.NET 3.5但是我们想知道是否有办法解决这个问题,或者这是一个已知的渲染问题还是设计问题.

TIA

AJ

Ant*_*nyJ 2

大家好,
感谢您的回复,他们引导我更深入地研究代码,寻找编码的地方。事实证明那是:

Server.HtmlEncode(input)
Run Code Online (Sandbox Code Playgroud)

对基页类中的所有控件执行。

现在我所认为的问题实际上是我的 RTFM 问题

来自http://www.asp.net/learn/whitepapers/aspnet4/writing-changes
HtmlEncode 和 UrlEncode 现在编码单引号

在 ASP.NET 4 中,HttpUtility 和 >HttpServerUtility 类的 HtmlEncode 和 UrlEncode 方法已更新为对单引号字符 >(') 进行编码,如下所示:

HtmlEncode 方法将单引号的实例编码为 ' 。UrlEncode 方法将单引号的实例编码为 %27。

因此,当我使用 .NET3.5 时,HtmlEncode 会忽略我的单引号 ( ' ),但是当切换到 .NET 4.0 时,HtmlEncode 不会忽略它。

再次感谢人们对此问题所做的所有回应和工作。

问候

阿杰