[英]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¶m2=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.