我从Ruby和PHP进入C#ASP.NET,我很享受它的一些元素,但我发现某些事情难以实现。如果有人能帮助我让这一点好起来的话,我会非常感激。
我正在尝试在POST请求中发送一些文本,将其转义为HTML,然后将其写入文本文件。
所以我仔细查看,阅读一下,然后尝试:
<%
System.IO.StreamWriter file = new System.IO.StreamWriter(Server.MapPath(@"./messager.txt"));
file.WriteLine(Request.Form["message"]);
file.Close();
%>
尚未执行HTML转义,只是尝试实际写入文本文件。
但这并不奏效;它没有抛出我能看到的错误,但是什么也没做,文本文件根本没有写入。我研究了这些方法,但却无法弄清楚原因。我真的很想得到一些帮助。
如果有帮助的话,这里是我正在尝试做的Ruby代码:
File.open "messager.txt", "w" {|f| f.puts h params[:message]}
答案 0 :(得分:2)
使用Server.MapPath
时,您必须使用特殊字符~
提供相对于Web应用程序的虚拟路径,该特殊字符是Web应用程序根目录的快捷方式。现在,最简单的方法是......
System.IO.File.WriteAllText(Server.MapPath("~\messager.txt"), Request.Form["message"]);
这假设请求实际上包含&#34;消息&#34;形式变量。请注意,如果该文件不存在,则此方法将创建一个新文件;如果存在,则将覆盖该文件。
但是,在ASP.NET Web窗体中,我们通常使用服务器控件,例如TextBox
,如果在发布页面时将消息设置为文本框,那么在OOP中检索此消息的更好方法是风格将是......
TextBox_ID.Text;
其中TextBox_ID
是TextBox的ID
如果Request.Form["message"]
为空。确保:
message
name
属性form
属性runat=server
标记内