如何从 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]}
使用特殊字符~
使用特殊字符(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"]
是空的。确保:
- 有一个名为
message
的文本输入元素 - 没有其他元素具有相同的
name
属性 - 输入元素位于具有
runat=server
属性的form
标记内 - 您正在回发页面,而不是发出 GET 请求