我在通用 http 處理程式 (.ashx) 后面的代碼中,我想獲得對呼叫 .aspx 頁面實體的參考,因此我可以呼叫一些方法/獲取它的一些屬性。我可以輕松呼叫頁面的靜態方法,但無法獲取實際的物件實體。
有沒有辦法,而不訴諸服務/網路方法/什么?謝謝!
編輯:
我從 aspx 頁面內的 JS 呼叫 ashx
$.ajax({
url: "handler.ashx",
context: "my content"
}).done(function() {
alert("Done");
});
然后我asp:Label用它的結果更新一個。無論如何,我已經找到了一種方法(例如,您可以通過 JS 中的 JQuery 來實作),但是現在我很好奇您是否可以從后面的代碼中簡單地呼叫一些pageInstance.setMyLabel(ashxResult)或類似的東西來實作它。
uj5u.com熱心網友回復:
沒有直接的方法可以通過服務器端代碼修改呼叫 .aspx 頁面的內容。
您應該(就像您提到自己一樣)使用 javascript 處理對 .ashx-handler 的呼叫結果。
如果您想使用一些結果“服務器端”,我認為唯一的選擇是在處理 .ashx 處理程式期間將一些資料寫入會話物件。
在 .aspx 頁面的下一次回發中,您可以使用該資料來完成一些更改。如果您想這樣做,請同時參考這個問題:
如何訪問 .ashx 檔案中的 Session?
uj5u.com熱心網友回復:
頁面類的實體只存在于處理請求并將回應發送回客戶端所需的時間內。當 Javascript 代碼執行并向ashx檔案發出請求時,頁面實體已被銷毀。
ASP.NET 頁面生命周期概述 | 微軟檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/409119.html
標籤:
