asp.net - asp.net mvc 页面上输出奇怪的字符

标签 asp.net asp.net-mvc asp.net-mvc-3

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

enter image description here

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

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

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

输出 anchor “დამატ���ბა”

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

更新:

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

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

最佳答案

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

我的观察:

  1. 它仅在远程请求时出现。本地请求总是可以的。
  2. 对于所有客户端、浏览器和计算机来说,问号的位置始终保持不变。
  3. 问号的位置仅在重新编译应用程序后才会更改。

关于asp.net - asp.net mvc 页面上输出奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329385/

相关文章:

asp.net - 使用 VB.NET 读取 XML 文件

c# - 当用户在 asp.net mvc3 中未被授权时重定向到另一个页面

javascript - window.print 时防止打印 url

c# - 这些类/方法应该去哪里?

c# - MVC3 Json 绑定(bind)错误?

c# - 在 asp.net 图表中调整字体轴样式和大小?

javascript - 使用 jQuery get 动态加载时,单击按钮后部分 View 未得到验证

c# - LINQ "queries"是否被编译成实际的 SQL 存储过程?

c# - 在 MVC3 问题中键入安全的 URL 操作

asp.net-mvc - ASP.NET MVC 3 RC 2 客户端验证与全局化