ASP.NET 截獲伺服器生成的將要傳送到客戶端的html的方法
有時候我們需要在將伺服器端生成的html傳送帶客戶端之前對這些html進行操作,比如生成靜態html加之儲存、改變生成的html中的某些內容等等,那麼久可以通過如下的方案解決。
我總結了兩種方式,個人覺得比較好用,一種是重寫Page.Render()方法。一種是通過IHttpmodule來實現。
1)這種方法適合控制某個頁面,在.aspx.cs裡面重寫Render()方法即可,該方法提供一個HtmlTextWriter 型別引數,裡面就包含了將要傳送到客戶端的內容,根據asp.net宣告週期知道Render階段是在load事件之後觸發的,所以,這個方法很適合完成我們想要的效果。下面是一個簡單的例子:
1: protected override void Render(HtmlTextWriter writer)
2: {
3: TextWriter tempWriter = new StringWriter();
4: base.Render(new HtmlTextWriter(tempWriter));
5: string str = tempWriter.ToString(); //這個str裡面已經包含了html。
6:
7: //然後可以對這個字串進行處理,比如儲存、替換等等
8: writer.Write(str); //再將修改好的html傳送到客戶端
9: }
2)這種方法在應用級控制,更適合需要對某一類頁面進行處理,或者所有頁面比較方面。要註冊介面的PreSendRequestContent方法,下面為一個例子,有關IHttpmodule內容,本文不重複了:
1: void context_PreSendRequestContent(object sender, EventArgs e)
2: {
3: HttpApplication app = (HttpApplication)sender;
4: HttpContext context = app.Context;
5: string url = context.Request.RawUrl;
6: StringWriter wr = new StringWriter();
7: context.Server.Execute(url, wr);
8: string htmlCon = wr.ToString();//字串htmlCon 已經包含了將要傳送到客戶端的html。
9:
10: }
3) 通過替換Response.Filter也可以實現。
相關推薦
ASP.NET 截獲伺服器生成的將要傳送到客戶端的html的方法
有時候我們需要在將伺服器端生成的html傳送帶客戶端之前對這些html進行操作,比如生成靜態html加之儲存、改變生成的html中的某些內容等等,那麼久可以通過如下的方案解決。 我總結了兩種方式,個人覺得比較好用,一種是重寫Page.Render()方法。一種是通過IHttpmodule來實現。 1)這種方法
asp.net Core 使用過濾器判斷請求客戶端是否為移動端,並實現PC端和移動端請求對映和自動跳轉
很多時候我們做網站時單純的用bootstrap等前端框架實現的前端自適應帶給使用者的體驗並不太好,所以為了提高使用者體驗會專門針對PC端網頁重新設計一套移動端網頁,但是怎麼才能做到在移動端訪問PC頁面的時候返回對應的移動端頁面,而不是PC端頁面呢?下面我們就簡單的進行介紹。主要技術是asp.net core。
在ASP.NET Core 2.x中獲取客戶端IP地址
一、前言 大家也知道服務端請求時我們獲取的IP地址是包含在請求頭中,因此這也大大便利了IP的獲取。 在ASP.NET中,可以通過以下方式獲取客戶端的IP地址。 HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
asp.net core IdentityServer4 實現 Client credentials(客戶端憑證)
前言 OAuth 2.0預設四種授權模式(GrantType) 授權碼模式(authorization_code) 簡化模式(implicit) 密碼模式(resource owner password credentials) 客戶端模式(client_credentials) 本章主要介紹客戶端模
ASP.NET中C#生成二維碼
保存 mss 軟件 clear 所有 str drawing for visual ASP.NET中用C#語言編寫網頁,將自己輸入的文字生成二維碼。 工具/原料 已安裝好VS2010或其他版本VS軟件的電腦一臺 1、新建 1
ASP.NET Web 伺服器控制元件事件模型
ASP.NET 中有一個重要功能,允許您通過與客戶端應用程式中類似的、基於事件的模型來對網頁進行程式設計。舉一個簡單的例子,例如,可以向 ASP.NET 網頁中新增一個按鈕,然後為該按鈕的 Click 事件編寫事件處理程式。儘管這種情況在僅使用客戶端指令碼(在動態 HTML 中處理按鈕的 oncli
asp.net core 2.0 郵件傳送服務
網上找了一下,發現一個很不錯的郵件傳送服務Mailgun,首先要註冊Mailgun賬號,獲得apikey以及domainame; 然後專案中安裝nuget: 配置並註冊服務: public interface IEmailSender { T
Go語言(伺服器開發):客戶端向伺服器傳送資料並接收返回資料
客戶端向伺服器傳送資料並接收返回資料。 示例程式碼: package mysocket import ( "fmt" "io" "net" ) func MySocketBase() { var ( host = "www.apache.org" p
使用Jexus+Mono在FreeBSD上搭建asp.net web伺服器
前言:如果要談起如何搭建asp.net執行環境,我相信很多人會想到使用Windows Server系統和IIS來搭建,不可否認,asp.net是微軟出的東西,當然用微軟的系統搭建最合適了。如果你又想使用asp.net,又想使用 FreeBSD,那麼是不是就行不通了呢?答案當然是否定的。因為我們有Mono,有了
asp.net中ashx生成驗證碼程式碼放在Linux(centos)主機上訪問時無法顯示問題
最近有個專案加入了驗證碼功能,就從自己部落格以前的程式碼中找到直接使用,直接訪問驗證碼頁面報錯如下: Application Exception System.ArgumentException The requested FontFamily could not be found [GDI+
【B/S】ASP.NET---驗證碼-生成和切換
驗證碼是什麼? 驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動區分計算機和人類的圖靈測試)的縮寫,是一種區分使用者是計算機還是人的公共全自動程式
Qt5 基於TCP傳輸的傳送/接收檔案伺服器(支援多客戶端)
一、實現功能 1、伺服器端選擇待發送的檔案,可以是多個 2、開啟伺服器,支援多客戶端接入,能夠實時顯示每個客戶端接入狀態 3、等待所有客戶端都處於已連線狀態時,依次傳送檔案集給每個客戶端,顯示每個客戶端傳送進度 4、傳送完成後等待接收客戶端發回的檔案,顯示接收進度 5、關閉
簡單的Http伺服器監聽和客戶端傳送
伺服器端: static void Main(string[] args) { StartTcpListener(); } static void StartTcpListener()
ASP.NET根據URL生成網頁縮圖示例程式(C#語言)
工作中可能馬上要用到根據URL生成網頁縮圖功能,提前做好準備。 在網上找了份原始碼,但是有錯誤:當前執行緒不在單執行緒單元中,因此無法例項化 ActiveX 控制元件“8856f961-340a-11d0-a9”,解決後執行良好,記錄在此備用! 起始頁:Default
ASP.NET MVC 伺服器端下載檔案
前端程式碼: <a id="upload" href="@Url.Content("~/goods/DownLoadGoodsVideo?n_name={檔案舊名稱}&o_name={檔
asp.net做伺服器,ionic2手機端,怎樣引入極光推送?
1去極光官網註冊,獲取app_key 2伺服器端,要做的工作是引入官方的dll,呼叫dll裡面的方法。其實這個dll做的工作就是拼接字串,傳送post請求,只不過dll給我們封裝好了,用起來方便。 dll檔案參考連結,https://github.com/jpush/jpu
asp.net匯出Excel生成多個Sheet
using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using System.Collections.Generic;using System.IO;using System.Linq;using Sy
ASP.Net 獲取伺服器的當前日期時間的綜合處理函式!
aaa = DateTime.Now.ToString("dddd");//中文星期顯示 int bbb=Convert.ToInt32(DateTime.Now.DayOfWeek); //顯示星期數字System.Da
ASP.NET DataSet資料生成Excel文件匯出下載
public partial class am_ElectronicInvoinceExportExcel : BasePage { protected void Page_Load(object sender, EventArgs e)
部署 ASP .NET CORE 伺服器端安裝軟體步驟問題
部署.NET CORE網站的時候,裝東西死活不成功,後來據說要這樣嚴格按照順序裝 dotnet-runtime-2.0.5-win-x64.exe dotnet-sdk-2.1.4-win-x64.exe DotNetCore.2.0.5-WindowsHosting.