我正在使用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行为。
答案 0 :(得分:0)
这听起来像个字符编码问题。此文件的编码与您使用它的页面编码相同吗?
在十六进制编辑器中打开文件,确保没有奇怪的字符。
答案 1 :(得分:0)
在编辑器中查看您的文本文件,该文件将显示所有字符,包括回车符,换行符等。(Notepad ++是我的选择)。文件可能会在创建文件的软件中出现异常的eof标记或其他编码问题。
答案 2 :(得分:0)
我测试了你的代码并为我正确呈现。
我之前看到ASP.NET改变了WebMethods中的传入XML字符串。在Response.write将其进行比较之前,将文本保存到磁盘上的文件中。检查你的CSS是否有LI风格。