將.aspx轉(zhuǎn)換為.htm的兩種方法
思路分析:
1.寫一個(gè)自定義的HTM模板 其中需要替換的地方用$value$這樣
包含起來
2.生成頁面的ASPX中,用StreamReader讀取HTM模板,用REPLACE
替換$value$
3.把完成的字符串用StreamWriter輸出
參考代碼如下:
1)定義模板e(cuò)mplate.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> $title$ 生成靜態(tài)頁的Demo|-51aspx.com</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 16px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<br />
<br />
<table width="100%" border="0" bgcolor="#339900">
<tr>
<td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span></td>
</tr>
<tr>
<td height="42" bgcolor="#FFFFFF"><br />
<br />
內(nèi)容:$content$ </td>
</tr>
</table>
<a href="#" target="_blank">版權(quán)所有</a>
</body>
</html>
2)在Default.aspx頁面的按扭的事件處理中寫如下代碼:
//源碼是替換掉模板中的特征字符
string mbPath = Server.MapPath("template.htm");
Encoding code = Encoding.GetEncoding("gb2312");
StreamReader sr = null;
StreamWriter sw = null;
string str = null;
//讀取
try
{
sr = new StreamReader(mbPath, code);
str = sr.ReadToEnd();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sr.Close();
}
//根據(jù)時(shí)間自動(dòng)重命名,擴(kuò)展名也可以自行修改
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";
str = str.Replace("$title{1}quot;, txtTitle.Text);//替換Title
str = str.Replace("$content{1}quot;, txtContent.Text);//替換content
//生成靜態(tài)文件
try
{
sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sw.Close();
Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已經(jīng)生成,保存在htm文件夾下!");
}
方法二:根據(jù)Url地址生成靜態(tài)頁保持
思路分析:
直接將做好的動(dòng)態(tài)頁面翻譯成靜態(tài)頁面,所以生成的內(nèi)容不夠靈活
參考代碼:
//根據(jù)Url地址生成靜態(tài)頁保持
protected void Button2_Click(object sender, EventArgs e)
{
Encoding code = Encoding.GetEncoding("utf-8");
StreamReader sr = null;
StreamWriter sw = null;
string str = null;
//讀取遠(yuǎn)程路徑
WebRequest temp = WebRequest.Create(txtUrl.Text.Trim());
WebResponse myTemp = temp.GetResponse();
sr = new StreamReader(myTemp.GetResponseStream(), code);
//讀取
try
{
sr = new StreamReader(myTemp.GetResponseStream(), code);
str = sr.ReadToEnd();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sr.Close();
}
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";
//寫入
try
{
sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sw.Close();
Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已經(jīng)生成,保存在htm文件夾下!");
}
}
相關(guān)文章
使用Blazor框架實(shí)現(xiàn)在前端瀏覽器中導(dǎo)入和導(dǎo)出Excel
Blazor?是一個(gè)相對(duì)較新的框架,用于構(gòu)建具有?.NET?強(qiáng)大功能的交互式客戶端?Web?UI,本文主要介紹了如何在?Blazor?應(yīng)用程序中實(shí)現(xiàn)?SpreadJS?利用?.NET?的強(qiáng)大功能完成瀏覽器端的?Excel?導(dǎo)入導(dǎo)出,需要的可以參考一下2023-05-05
C# .Net動(dòng)態(tài)調(diào)用webService實(shí)現(xiàn)思路及代碼
動(dòng)態(tài)調(diào)用web服務(wù)將執(zhí)行以下步驟:獲取WSDL/生成客戶端代理類代碼/設(shè)定編譯參數(shù)/編譯代理類/生成代理實(shí)例,并調(diào)用方法,很詳細(xì)的,感興趣的你可不要錯(cuò)過了哈2013-02-02
Asp.net Web Api實(shí)現(xiàn)圖片點(diǎn)擊式圖片驗(yàn)證碼功能
現(xiàn)在驗(yàn)證碼的形式越來越豐富,今天要實(shí)現(xiàn)的是在點(diǎn)擊圖片中的文字來進(jìn)行校驗(yàn)的驗(yàn)證碼。下面通過本文給大家分享Asp.net Web Api實(shí)現(xiàn)圖片點(diǎn)擊式圖片驗(yàn)證碼功能,需要的的朋友參考下吧2017-06-06
.NET 6.0 + WPF 使用 Prism 框架實(shí)現(xiàn)導(dǎo)航
Prism是一款專為XAML應(yīng)用程序設(shè)計(jì)的開源框架,主要面向WPF和Xamarin Forms等平臺(tái),文章介紹了Prism的基本概念、安裝步驟和使用方法,是開發(fā)企業(yè)級(jí)應(yīng)用程序的首選框架,感興趣的朋友跟隨小編一起看看吧2024-09-09
asp.net Silverlight應(yīng)用程序中獲取載體aspx頁面參數(shù)
有時(shí)候SL應(yīng)用中需要使用由aspx頁面中傳遞過來的參數(shù)值,此時(shí)通常有兩種方法獲取2009-11-11
Visual?Studio2022創(chuàng)建WebAPI項(xiàng)目步驟記錄
不管是前后端分離還是提供數(shù)據(jù)服務(wù),WebApi使用的越來越廣泛,而且.NET Core也是我們.NET開發(fā)人員未來發(fā)展的趨勢(shì),所以說學(xué)會(huì)使用.NET Core Api是非常有必要的,這篇文章主要給大家介紹了關(guān)于Visual?Studio2022創(chuàng)建WebAPI項(xiàng)目步驟的相關(guān)資料,需要的朋友可以參考下2024-01-01
手把手教你AspNetCore WebApi認(rèn)證與授權(quán)的方法
這篇文章主要介紹了手把手教你AspNetCore WebApi認(rèn)證與授權(quán)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
asp.net4.0框架下驗(yàn)證機(jī)制失效的原因及處理辦法
asp.net4.0框架下驗(yàn)證機(jī)制失效的原因及處理辦法,需要的朋友可以參考一下2013-06-06

