好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面

ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面

熱門標簽:山西防封卡電銷卡套餐 上海楊浦怎么申請申請400電話 地圖標注多個行程 海外地圖標注門市標 云南外呼電銷機器人系統 浙江外呼系統怎么安裝 廈門商鋪地圖標注 陜西人工外呼系統哪家好 銅川小型外呼系統運營商

要解決這個問題,我們需要先了解ASP.NET應用程序的生命周期,先看下面作者整理的一張圖片:

ASP.NET生命周期 (2)

從圖中我們可以清楚的看到:通用IIS訪問應用程序時,每次的單個頁面URL訪問時,都會先經過HttpApplication 管線處理請求,走過BeginRequest 事件之后才會去走路由訪問具體的Controller和Action,最后結束的時候會請求EndRequest事件。下面用一張圖來表示這個順序:

image

注意圖中標示的紅色部分就是我們要實現的部分,實現如下:
1 新建MyHandler.cs

復制代碼 代碼如下:

public class MyHandler:IHttpModule
{
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.FilePath;
string fileExtension =
VirtualPathUtility.GetExtension(filePath);
if (fileExtension.Equals(".html"))
{
context.Response.WriteFile(context.Server.MapPath(filePath));//直接走靜態頁面
//此處可以加入緩存,條件也可以根據需要來自己定義
context.Response.End();
}
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.FilePath;
string fileExtension =
VirtualPathUtility.GetExtension(filePath);
if (fileExtension.Equals(".html"))
{
context.Response.Write("hr>h1>font color=red>" +
"HelloWorldModule: End of Request/font>/h1>");
}
}
public void Dispose() { }
}

2. web.config中加入以下代碼,才會運行自定義的管道處理類
復制代碼 代碼如下:

httpModules>
add name="MvcTest.MyHandler" type="MvcTest.MyHandler"/>
/httpModules>

運行一下自己的代碼,看看效果你就全明白了!
補充:根據@小尾魚的提示,如果直接在自己的項目文件下生產了和URL中一樣的目錄文件,比如訪問:yourdomin.com/product/1.html,你的項目文件夾下真的存在product/1.html這個路徑,那么IIS會直接去請求這個靜態頁面,如果項目中使用了自定義的管道處理程序,那么這個靜態頁仍然會走我們的自定義管道處理程序,我們可以在這里通過緩存來實現要不要重新成長靜態頁或刪除過期產品的靜態頁,如果不使用此方法,只能去寫執行計劃,定時跑這些靜態文件了,修改Application_BeginRequest
復制代碼 代碼如下:

private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.FilePath;
string fileExtension =
VirtualPathUtility.GetExtension(filePath);
if (fileExtension.Equals(".html"))
{
//判斷緩存是否存在,不存在加入緩存,調用生成靜態的類和方法
//產品過期,移除靜態文件,302重定向
if (System.IO.File.Exists(context.Server.MapPath(filePath)))
{
context.Response.WriteFile(context.Server.MapPath(filePath));
context.Response.End();
}
}

思路大體如此。

您可能感興趣的文章:
  • Asp.net Mvc 身份驗證、異常處理、權限驗證(攔截器)實現代碼
  • asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
  • 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
  • asp.net MVC實現無組件上傳圖片實例介紹
  • ASP.NET MVC中為DropDownListFor設置選中項的方法
  • ASP.NET MVC 5使用X.PagedList.Mvc進行分頁教程(PagedList.Mvc)
  • 基于Asp.Net MVC4 Bundle捆綁壓縮技術的介紹
  • ASP.NET MVC使用EasyUI的datagrid多選提交保存教程
  • Asp.net MVC scheduler的實現方法詳解

標簽:自貢 孝感 許昌 常州 朔州 西雙版納 萊蕪 信陽

巨人網絡通訊聲明:本文標題《ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面》,本文關鍵詞  ASP.NET,MVC3,關于,生成,純,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面》相關的同類信息!
  • 本頁收集關于ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 善良的小峓子HD中字3D漫画 | 欧美巨大另类极品videohd| 白嫩娇妻被交换经过借种| 亚洲永久精品一区二区三区| 秘密爱视频| 国产成人久久爽AAA| 国产专区一线二线三线品牌东莞| 男人午夜免费视频| 皮带抽打翘臀受虐sp网站| 丰满少妇乱A片无码视频| 无码免费婬AA片在线视频老井| 日韩美女AV精品一区二区网站 | 日本三级无码中文字幕西瓜影视| 精东影业果冻传媒| 思春期在线观看| 免费高清毛片天天看| 日本猛少妇色XXXXX猛叫| 舒服爽刺激使劲还要| 日韩毛片在线看| 欧美视频中文字幕| XXX高清偷拍女厕XXXX| 穿jk白丝被?视频裸体动漫| 黄色片小说| 大伊香蕉精品二区视频在线| 免费看片A级毛片免费看电影男| 丰滿熟妇性XXXX乱女系列| 色戒hd版无删减| 在公交车上弄到高c了公交车最后一排| 欧美性xxxx交| 久久精品—区二区三区舞蹈李宗瑞 | 见兄(骨科)| 风流女警察一级毛片| 国产91网在线| 91亚洲精品色午夜麻豆| 艳妻互换| 亚洲综合图片小说| 双性受被各种怪物c哭了| 中文字幕亚洲欧美日韩在线不卡| vx私人借钱16周岁| 找调教公司来调教娇妻| 成人福利视频网站|