我将.aspx转换为.html页面时,遇到了问题,我是用C#的语言来实现的! 20
usingSystem.Data;usingSystem.Configuration;usingSystem.Linq;usingSystem.Web;usingSyst...
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
/// <summary>
///HtmlProxy 的摘要说明
/// </summary>
public class HtmlProxy
{
public string dTime = "";
public HtmlProxy()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public bool ChangeFileIndex()
{
string path = HttpContext.Current.Server.MapPath("/SunEduaspx/html/");
string fileName = path + "indexHtml" + ".html";
//尝试读取已有文件
Stream st = GetFileStream(fileName);
if (st != null)
{
using (st)
{
StreamToStream(st, HttpContext.Current.Response.OutputStream);
return true;
}
}
else
{
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute("/SunEduaspx/index.aspx", sw);
string content = sw.ToString();
try
{
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Write))
{
using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding))
{
stw.Write(content);
}
}
return true;
}
catch
{
return false;
}
}
}
public static Stream GetFileStream(string filename)
{
try
{
DateTime dt = File.GetLastWriteTime(filename);
TimeSpan ts = dt - DateTime.Now;
if (ts.TotalHours > 1)
{
return null;
}
return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
}
catch (Exception ex)
{
return null;
}
}
public static void StreamToStream(Stream src, Stream dst)
{
byte[] buf = new byte[4096];
while (true)
{
int c = src.Read(buf, 0, buf.Length);
if (c == 0)
{
return;
}
dst.Write(buf, 0, c);
}
}
}
我用的是这样的一个方法来实现转换的,转换到html文件夹里,可转换后在首页里的图片都显示不了,刚从后台输入的数据也显示不了。该如何让这些数据显示呢?我知道要用绝对路径,可我生成后的html的绝对路径在哪边改呢?
这个是生成后的图片。哪位高手能帮我解决一下吗?给个稍微复杂点的例子,不要网上那么简单的,由于以前都没接触过,我已经研究五天了,可还是没有头绪。我将重谢!
那要怎么去实现呢?是用模板吗?我刚实习,麻烦你细细的指教一下,可以吗?谢谢!
这个应该不是伪静态,因为他已经成功生成了一个静态页面在html文件夹里,伪静态是一个不存在的静态页。顾客要求生成一个实际的静态页。 展开
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
/// <summary>
///HtmlProxy 的摘要说明
/// </summary>
public class HtmlProxy
{
public string dTime = "";
public HtmlProxy()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public bool ChangeFileIndex()
{
string path = HttpContext.Current.Server.MapPath("/SunEduaspx/html/");
string fileName = path + "indexHtml" + ".html";
//尝试读取已有文件
Stream st = GetFileStream(fileName);
if (st != null)
{
using (st)
{
StreamToStream(st, HttpContext.Current.Response.OutputStream);
return true;
}
}
else
{
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute("/SunEduaspx/index.aspx", sw);
string content = sw.ToString();
try
{
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Write))
{
using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding))
{
stw.Write(content);
}
}
return true;
}
catch
{
return false;
}
}
}
public static Stream GetFileStream(string filename)
{
try
{
DateTime dt = File.GetLastWriteTime(filename);
TimeSpan ts = dt - DateTime.Now;
if (ts.TotalHours > 1)
{
return null;
}
return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
}
catch (Exception ex)
{
return null;
}
}
public static void StreamToStream(Stream src, Stream dst)
{
byte[] buf = new byte[4096];
while (true)
{
int c = src.Read(buf, 0, buf.Length);
if (c == 0)
{
return;
}
dst.Write(buf, 0, c);
}
}
}
我用的是这样的一个方法来实现转换的,转换到html文件夹里,可转换后在首页里的图片都显示不了,刚从后台输入的数据也显示不了。该如何让这些数据显示呢?我知道要用绝对路径,可我生成后的html的绝对路径在哪边改呢?
这个是生成后的图片。哪位高手能帮我解决一下吗?给个稍微复杂点的例子,不要网上那么简单的,由于以前都没接触过,我已经研究五天了,可还是没有头绪。我将重谢!
那要怎么去实现呢?是用模板吗?我刚实习,麻烦你细细的指教一下,可以吗?谢谢!
这个应该不是伪静态,因为他已经成功生成了一个静态页面在html文件夹里,伪静态是一个不存在的静态页。顾客要求生成一个实际的静态页。 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询