如何从 C# ASP.NET 页中编写文本文件

本文关键字:文本 文件 NET ASP | 更新日期: 2023-09-27 18:34:31

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

如何从 C# ASP.NET 页中编写文本文件

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

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

这是假设请求实际上包含"消息"表单变量。请注意,此方法将创建一个新文件(如果不存在(,或者如果存在,则会覆盖它。

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

TextBox_ID.Text;

其中TextBox_ID是文本框的 ID

编辑

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

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