2012-07-08 106 views
0

我有一個頁面的Default.aspx如何在global.asax中訪問javascript變量?

var name="user1" 

window.location="test.aspx" 

javascript變量此頁面將向Test.aspx文件,並在Global.asax中,同時發射的Application_BeginRequest事件,我需要訪問變量「名」。我需要這樣做沒有餅乾。 任何人都可以幫助我嗎?

+1

Request如何提交?那個神祕的變量在你的Java源代碼中在哪裏? – Bergi 2012-07-08 20:03:47

+0

好的,下一個問題:爲什麼你需要提交一個變量whoose值已經知道serverside(把它發送給客戶端的腳本標籤)? – Bergi 2012-07-08 20:10:36

回答

1

var name="user1"是,你可以內部Application_BeginRequest從Request對象訪問假設你已經重定向時,它傳遞給test.aspx網頁JavaScript變量:

var name = "user1"; 
window.location.href = 'test.aspx?name=' + encodeURIComponent(name); 

然後:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    string name = HttpContext.Current.Request["name"]; 
    if (!string.IsNullOrEmpty(name)) 
    { 
     // the name variable was present in the request => do something with it 
    } 
} 
+0

是的。但我不想在URL中顯示查詢字符串。 – user1357872 2012-07-08 20:07:49

+1

在這種情況下,使用'method =「POST」'使用'

'。但請記住,如果這是一些敏感信息,它甚至不應該在您的JavaScript代碼中。如果您正在進行某種身份驗證,我會建議您使用表單身份驗證,而不是在這裏重新創建一些輪子。 – 2012-07-08 20:08:44

+0

即時通訊使用window.location導航到下一頁。我如何在這裏使用POST? – user1357872 2012-07-08 20:11:10

1

如果「提交」你的意思是執行POSTGET請求,那麼你需要通過name作爲url-encoded字符串作爲表格POST的服務器或GET請求中的查詢字符串參數。

然後,在Application_BeginRequest訪問從CurrentHttpContext

+0

即時通訊使用window.location提交到下一頁。但我不想在URL – user1357872 2012-07-08 20:09:29

+0

中顯示查詢字符串,這不是您提交'POST'請求的方式,更改'window.location'使用'GET'執行「重定向」。 – xandercoded 2012-07-08 20:10:31