繁体   English   中英

如何在C#ASP.NET页面中编写文本文件?

[英]How do I write a text file from within a C# ASP.NET page?

我正在从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]}

使用Server.MapPath使用特殊字符~提供相对于Web应用程序的虚拟路径,该字符是Web应用程序根目录的快捷方式。 现在,最简单的方法如下:

System.IO.File.WriteAllText(Server.MapPath("~\messager.txt"), Request.Form["message"]);

假设请求实际上包含“消息”形式变量。 请注意,这种方法将在不存在的情况下创建一个新文件,或者在存在的情况下覆盖它。

但是,在ASP.NET Web窗体中,我们通常使用服务器控件,例如TextBox ,如果在发布页面时将消息设置为文本框,则采用OOP风格检索此消息的更好方法是...

TextBox_ID.Text;

其中TextBox_ID是TextBox的ID

编辑

如果Request.Form["message"]空着。 确保:

  1. 有一个名为message的文本输入元素
  2. 没有其他具有相同name属性的元素
  3. 输入元素位于带有runat=server属性的form标记内
  4. 您正在回发页面,而不是发出GET请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM