2012-03-11 115 views
0

我試圖從客戶端發送數據到服務器端(asp.net c#),如果你真的想知道,我想發送window.name屬性從Javascript代碼將數據傳遞到服務器端

首先我想到有一個asp:HiddenFieldOnSubmit事件有一些JS在隱藏字段中寫入值。唯一的問題是我只能從PreLoad事件到PreRenderComplete事件訪問隱藏字段值(根據this)。我正在處理的項目在OnInit事件中有很多代碼,不幸的是我無法移動它,因此我需要在此處使用window.name值。

我的其他想法是添加自定義HTTP標頭windowIdOnSubmit事件有一個JS,它將一個參數附加到document.location.href

我設法寫從JS頭部與XMLHttpRequestsetRequestHeader,但是,也許我做錯了什麼事在我的實現,這將產生2級的要求,第一個是正常的,預期的一個(點擊一個按鈕/鏈接...),第二個來自XMLHttpRequest。我發現這種行爲非常不自然。 你有什麼要求嗎?參見以下的代碼片段)。 我不知道如何使用AJAX。

var oReq = new window.XMLHttpRequest; 
    oReq.open('POST', document.location, false); 
    oReq.setRequestHeader("windowId", window.name); 
    oReq.send(null); 

對於OnSubmit掛鉤的想法,我沒有花就可以了太多的時間,但我想我必須要追加#字符之前我附上我的windowId參數與它的價值,從而使頁面沒有按重新加載。我可能是錯的。無論如何,我必須在獲取該值後從URL中刪除此內容,以便用戶看不到惡意網址。 你有什麼要求嗎?

好的,你有什麼想法?

謝謝你閱讀我所有的blabbering,並且預先感謝你爲你解答。

回答

1

我會建議<asp:HiddenField />(例如,<asp:HiddenField ID="hfWindowName" runat="server" />OnInit,你仍然可以訪問使用Request.Form它的價值:。

string windowName = Request.Form(hfWindowName.UniqueID); 
+0

謝謝,我已經忘記了的Request.Form – Daniel 2012-03-11 17:26:32

+0

這並沒有爲工作在Oninit中,我們沒有訪問控制值的權限,每次都給我NULL。 – Karan 2012-11-28 09:12:00

相關問題