簡體   English   中英

無需請求即可呈現ASPX頁面

[英]Rendering ASPX Page without a request

我有一個ASPX頁面,我打算用它作為模板來生成一些HTML。 我已經定義了我的標記和數據綁定控件,並構建了一個函數來執行所有數據綁定,調用this.Render並返回HTML。 從Page_Load調用時,該函數工作正常。

我的意圖是繞過頁面請求並直接調用該方法並獲取頁面HTML,但是當我在沒有發出HTTP請求的情況下調用該函數時,我的服務器端控件都沒有被初始化。

有沒有什么辦法可以在頁面上調用方法,傳遞一些參數並獲取HTML輸出而無需發出HTTP請求。 我相信Server.Execute可以做到但我無法找到一種方法來傳遞params。

我正在調用這個函數

MyPage ThreadHTMLGenerator = new MyPage;
string threadHTML= ThreadHTMLGenerator.GenerateExpandedHTML(param1, param2, param3);

您需要使用Server.Execute

var page = new MyPage();
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);

或者,如果您需要傳遞自己的查詢字符串參數,則可以對自己執行WebRequest:

var request = WebRequest.Create("http://www.mysite.com/page.aspx?param1=1&param2=2");
var response = (HttpWebResponse)request.GetResponse ();
var dataStream = response.GetResponseStream ();
var reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM