当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,