Response.WriteFile(“mymenu.aspx”)Bug?

时间:2009-03-23 13:21:56

标签: asp.net

我正在使用Response.WriteFile("mymenu.aspx")将纯文本文件写入MasterPage中的某个区域。不幸的是,它还打印出由方形字符表示的未知字符。菜单文件的内容如下:

<ul>
  <li><a href="Accounts">Accounts</a></li>
</ul>

正方形字符是导致我的菜单显示不正确的原因,将其向下推约20像素。我测试只将HTML放在母版页中而不是包含文件,它工作正常,这意味着它必须归结为Response.WriteFile函数。我不认为其他人遇到过这个问题吗?

编辑:我也尝试了以下内容,只是为了确保我没有做任何愚蠢的事情,并且文件中没有任何狡猾的内容。

<%
   Dim tw As New System.IO.StreamReader(Server.MapPath("menu.aspx"))
   For Each s As String In tw.ReadToEnd
      Response.Write(s)
   Next
%>

有效。但这仍然无法解释Response.WriteFile行为。

3 个答案:

答案 0 :(得分:0)

这听起来像个字符编码问题。此文件的编码与您使用它的页面编码相同吗?

修改

在十六进制编辑器中打开文件,确保没有奇怪的字符。

答案 1 :(得分:0)

在编辑器中查看您的文本文件,该文件将显示所有字符,包括回车符,换行符等。(Notepad ++是我的选择)。文件可能会在创建文件的软件中出现异常的eof标记或其他编码问题。

答案 2 :(得分:0)

我测试了你的代码并为我正确呈现。

我之前看到ASP.NET改变了WebMethods中的传入XML字符串。在Response.write将其进行比较之前,将文本保存到磁盘上的文件中。检查你的CSS是否有LI风格。