动态生成静态网页 回的有分!
protected override void Render(HtmlTextWriter writer)
{
string filePath= "html/ "+Request.QueryString[ "ID "].ToString()+ ".html ";
if(!File.Exists(Server.MapPath(filePath)))
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath(filePath), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
}
Response.Redirect(filePath);
}
//用这种方法生成html
//这样保存好象上面有图片的话 生成的html里面的图片显示不了 (有办法解决吗?)
//还有更好的用别的方法实现的没?
------解决方案--------------------绝对不会,我们网站都是这样做的,很多图片,没有你说的这个问题。
------解决方案--------------------因为图片一般都使用相对路径,而生成的HTML文件路径变化,自然会出现图片无法显示的问题.要处理图片的迁移问题
------解决方案--------------------那是地址问题啊,你把你那个动态的页面地址写成静态页面的地址,比如
asp:ImageButton id= "ImageButton1 " style= "Z-INDEX: 104; LEFT: 208px; POSITION: absolute; TOP: 64px "runat= "server " Width= "80px " Height= "56px " ImageUrl= "home.png "> </asp:ImageButton> </FONT>
你建立的是 html文件夹
asp:ImageButton id= "ImageButton1 " style= "Z-INDEX: 104; LEFT: 208px; POSITION: absolute; TOP: 64px "runat= "server " Width= "80px " Height= "56px " ImageUrl= "、html/home.png "> </asp:ImageButton> </FONT>
------解决方案--------------------有道理!
------解决方案--------------------ImageUrl= "home.png "
在home.png前面加上图片路径
前面加/就可以了
------解决方案--------------------顶一下, 路径的问题嘛。 总会有办法解决问题的
------解决方案--------------------帮顶!!
------解决方案--------------------一般都是模板的时候指定地址吧,
------解决方案--------------------确保图片相对路径是可以正确解吸的
------解决方案--------------------学习.
------解决方案--------------------路径问题
------解决方案--------------------学习之中,帮顶
------解决方案--------------------路过,帮顶一下
------解决方案--------------------顶
------解决方案-------------------- public string GetPageValue(string eURL)
{
string mStr = string.Empty;
WebRequest mRequest = WebRequest.Create(eURL);
WebResponse mResponse = mRequest.GetResponse();
Stream mStream = mResponse.GetResponseStream();
StreamReader mSR = new StreamReader(mStream, System.Text.Encoding.UTF8);
mStr = mSR.ReadToEnd();
mResponse.Close();
return mStr;
}