2

有时(随机)我的 asp.net mvc 应用程序输出页面,其中单个字符被替换为奇怪的问号,如图所示

在此处输入图像描述

在数据更改之前,此行为是恒定的,并且不会随着页面刷新而消失。整个页面使用格鲁吉亚语 unicode。我正在将 asp.net mvc 3 与 Visual Studio 2010 和 iis express 一起使用。这也在 IIS 7.5 的已发布站点上观察到。我在 asp.net webforms 应用程序中也看到了类似的问题。

我不仅在 db 提供的数据上观察到这种行为,而且在使用 html 助手生成的简单锚点上也观察到了这种行为

TagBuilder addAnchor = new TagBuilder("a");
addAnchor.AddCssClass("add-item");
addAnchor.MergeAttribute("href", "#");
addAnchor.SetInnerText(SharedResources.Add); //resource item contains string დამატება

哪个输出锚“დამატ���ბა”

这不是浏览器端页面渲染的问题,因为原始响应已经包含这些符号。

更新:

看起来,通过设置禁用缓冲区输出Response.BufferOutput = false;会从页面中删除奇怪的字符。但是我使用Cassette来引用捆绑包,它不能与禁用的缓冲区输出一起使用 - 页面上没有引用任何 scipts 或样式表。

你们有没有人遇到过类似的问题?这对我来说实际上很重要,因为目前它会影响单个字符被损坏的数据是多选测试问题的正确答案信息。

4

3 回答 3

3

我有同样的错误。它是 Cassette,具有重写结果 HTML 内容(并且需要将 BufferOutput 设置为 true)的功能,以便在需要时将引用的脚本和样式表标签移动到顶部。请参阅http://getcassette.net/documentation/configuration上的IsHtmlRewritingEnabled选项。当我关闭此功能时,该错误已消失。

我的观察:

  1. 它仅在远程请求中出现。本地请求总是可以的。
  2. 对于所有客户端、浏览器和计算机,问号的位置始终保持不变。
  3. 问号的位置只有在重新编译应用程序后才会发生变化。
于 2012-08-24T11:50:57.927 回答
0

我想这与字符集有关。当我尝试显示不在特定字符集中的字符时,我遇到了这个问题。

例如’ or – (’ or –)在 UTF-8 中,当字符以前没有经过 HTML 编码时。

于 2012-04-26T08:49:33.873 回答
0

我也有这样的输出。在我的例子中,错误的来源在 Views/web.config 中。页面/命名空间中列出了一个程序集,该程序集不是引用程序集的一部分

于 2014-09-15T11:10:30.820 回答