ASP.NET网页静态化的问题(不支持给定的路径)
在asp.net网页静态化中,需要静态输出aspx页面中添加的数据,详细代码如下static string CnStr = Connection.connection();
SqlConnection con = new SqlConnection(CnStr);
SqlCommand cmd;
SqlParameter pm;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_Click(object sender, EventArgs e)
{
string UName = this.name.Text;
string Msg = this.Msg.Text;
Msg = Msg.Replace("\n", "<br />");
string Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string FileName = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+".htm";
OutputHtml(UName, Msg, Time, FileName);
}
private void OutputHtml(string t1, string t2, string t3, string FName)
{
string HtmlPath = String.Format(@"\Html\{0}", FName);
string HtmlTemp = File.ReadAllText(Server.MapPath(".") + @"\HtmlTemp.htm", Encoding.UTF8);
StringBuilder SBuilder = new StringBuilder(HtmlTemp);
SBuilder.Replace("{Title}", t1 + "的留言");
SBuilder.Replace("{AddUserName}", t1);
SBuilder.Replace("{AddMsg}", t2);
SBuilder.Replace("{AddTime}", t3);
StreamWriter SWriter = File.CreateText(Server.MapPath(".") + @"\Html\" + FName);
SWriter.WriteLine(SBuilder.ToString());
SWriter.Flush();
SWriter.Close();
AddRow(t1, t2, t3, HtmlPath);
}
private void AddRow(string t1, string t2, string t3, string t4)
{
string Sqlstr = "insert into [tb_Message] ([name],[message],[time],[htmlpath]) values(@UName,@Msg,@Time,@FPath)";
cmd = new SqlCommand(Sqlstr, con);
pm = new SqlParameter("@UName", SqlDbType.VarChar, 20);
pm.Value = t1;
cmd.Parameters.Add(pm);
pm = new SqlParameter("@Msg", SqlDbType.NText);
pm.Value = t2;
cmd.Parameters.Add(pm);
pm = new SqlParameter("@Time", SqlDbType.DateTime);
pm.Value = t3;
cmd.Parameters.Add(pm);
pm = new SqlParameter("@FPath", SqlDbType.VarChar, 20);
pm.Value = t4;
cmd.Parameters.Add(pm);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
this.name.Text = string.Empty;
this.Msg.Text = string.Empty;
Response.Redirect(t4);
}
但当代码执行到 StreamWriter SWriter = File.CreateText(Server.MapPath(".") + @"\Html\" + FName);时就报错说:不支持给给定的路径,头都大了,该怎么解决(网站根目录下已存在Html文件夹) --------------------编程问答-------------------- FName 看看这里面有没有非法字符 --------------------编程问答-------------------- Server.MapPath(".")
有点? --------------------编程问答-------------------- Server.MapPath("~\\Html")
文件夹是不是“只读”
服务器路径
非法字符 --------------------编程问答-------------------- Server.MapPath("~");表示网站根路径 --------------------编程问答--------------------
StreamWriter SWriter = File.CreateText(Server.MapPath("~/Html/" + FName));
同时要确定你在网站下面有一个Html子目录。 --------------------编程问答-------------------- 跟踪下得到的路径字符串格式 看是否一致
补充:.NET技术 , .NET Framework