日期:2014-05-18  浏览次数:20442 次

动态生成静态网页 回的有分!
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;
}