EF利用IHttpHandler静态化处理
(非连接数据库):连接数据库在主页
目录
创建模板
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Temp.html(模板)</title>
</head>
<body>
<dl>
<dt><img src="../image/{$imgs}" /></dt>
<dt>名称:{$name}</dt>
</dl>
</body>
</html>
创建读取类
public bool IsReusable {
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
//获取ID
string url = context.Request.RawUrl;
//截取字符转
int a = url.LastIndexOf("_");
int b = url.LastIndexOf(".");
//获取ID
int id = int.Parse(url.Substring(a+1,b-1-a));
//对模板进行读取 (我要得到模板的路径)
string tmpPath = context.Server.MapPath("~/Car/Temp.html");
//判断静态页面是否存在 (如果存在直接读取)
string htmlPath = context.Server.MapPath("~/Car/info_"+ id +".html");
//判断
if (!File.Exists(htmlPath))
{
//不存在,读取模板
string tmpStr = ReadTmp(tmpPath);
//替换标签
CarManage cm = new CarManage(); //这个是一个集合 里面有数据,
List<Car> cars = cm.carlist; //这个是类型 和上面的两个应该可以替换成数据库
tmpStr = tmpStr.Replace("{$imgs}", cars[id].image);
tmpStr = tmpStr.Replace("{$name}", cars[id].name);
//保存生成的新的页面 创建页面
WriteHtml(htmlPath, tmpStr);
}
//直接读取
context.Response.WriteFile(htmlPath);
}
//读取模板的方法
public string ReadTmp(string tmpPath) {
FileStream fs = new FileStream(tmpPath, FileMode.Open);
StreamReader sr = new StreamReader(fs);
string tmpStr = sr.ReadToEnd();//读取到最后
sr.Close();
fs.Close();
return tmpStr;
}
//创建页面
public void WriteHtml(string savePath, string tmpStr) {
FileStream fs = new FileStream(savePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.Write(tmpStr);
sw.Close();
fs.Close();
}
}
Web配置
<!--配置-->
<system.webServer>
<handlers>
<add name="aa" verb="*" path="Car/*.html" type="_2静态化处理.Hander" />
</handlers>
</system.webServer>
主页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="_2静态化处理.index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>index.aspx(主页面)</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<ul>
<li><a href="Car/info_0.html">奥迪</a></li>
<li><a href="Car/info_1.html">宝马</a></li>
</ul>
</div>
</form>
</body>
</html>
数据库博客连接https://blog.csdn.net/weixin_44719554/article/details/105373263