2012-07-08 73 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