簡體   English   中英

將數據從Javascript代碼傳遞到服務器端

[英]Pass data to server side from Javascript code

我正在嘗試將數據從客戶端發送到服務器端(asp.net c#), 如果您真的想知道的話,我想發送window.name屬性

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

我的其他想法是添加自定義HTTP標頭windowId或在OnSubmit事件上添加一個JS,該JS將一個參數附加到document.location.href

我設法用XMLHttpRequest setRequestHeader從JS寫入標頭,但是, 也許我在實現中做錯了事 ,這生成了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中刪除,以使用戶看不到討厭的URL。 你有什么建議嗎?

好吧,你有什么想法?

感謝您閱讀我所有的煩惱,並預先感謝您的答復。

我會推薦<asp:HiddenField /> (例如, <asp:HiddenField ID="hfWindowName" runat="server" /> 。在OnInit您仍然可以使用Request.Form來訪問其值:

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

暫無
暫無

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

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