在ASP中保存一定数量的会话.净,c#
本文关键字:会话 ASP 保存 | 更新日期: 2023-09-27 18:11:17
我已经在这个网站上找到了。
如何在href
中传递会话变量但是我想要的是相反的。而我却无法完成……
我需要一些正确的语法…
是......
..../home.aspx?<%Session["egSession"]=1%>
或
..../home.aspx?=<%Session["egSession"]=1%>
或
..../home.aspx?<%=Session["egSession"]=1%>
但我相信以上都是错误的…因为他们都不工作。
Tkz . .
Session.Add("egSession", 1)
将会话cookie egSession添加1
你也可以通过这样做来确定它不存在:
Session.Remove("egSession");
Session.Add("egSession", 1);
要从地址获取查询字符串值,您需要(do后面的代码)
var value = Request["egSession"];
这意味着你可以这样做:
Session.Remove("egSession");
Session.Add("egSession", Request["egSession"]);
希望有帮助!
** UPDATE **
如果你不能修改。cs文件,你可以在aspx文件中这样做,通过将你的代码包装在<% ... code goes here ... %>
如果新的会话变量值是已知的,例如在您的示例设置中,它可以在任何地方完成
<% Session["egSession"]=1; %>
如果您想将其作为查询参数传递,请执行以下操作:
..../home.aspx?egSession=<%=Session["egSession"]%>
关键是,你需要一个值的名称,例如egSession,但你可以叫它任何你想要的。
但是,如果您已经知道了值,您可以简单地执行:
..../home.aspx?egSession=1
根据我的理解,你想要这样的东西:
APage
<a href="..../home.aspx?egSession=1">Take Me home</a>
Home.aspx.cs:页面背后的代码,比如OnPageLoad事件
Session["egSession"] = Request.QueryString["egSession"];
Home.aspx
<div>Session: <% =Session["egSession"] %></div>
<div>Query String: <% = Request.QueryString["egSession"] %></div>
如果你想把所有的都放在一起,我会尝试下面的方法:
APage.aspx.cs
创建一个公共方法(如果需要,可以更改输入参数的类型)
public string SessionMagic(object input)
{
Session["egSession"] = input;
return Session["egSession"].ToString();
}
APage.aspx
<a href="..../home.aspx?egSession=<%= SessionMagic(1)%>">A Link</a>
* 更新:*
如果你不能更新。cs文件,你可以在aspx页面中添加服务器端代码,这不是很好的做法,但它可以做到。使用运行服务器属性集将代码封装在脚本标记中。例如:
<script runat="server">
public string ServerSideFunction(string input)
{
Session["egSession"] = Request.QueryString["egSession"];
public string SessionMagic(object input)
{
Session["egSession"] = input;
return Session["egSession"].ToString();
}
}
</script>
你可以使用javascript cookie来存储你想要设置到Session的值。
例如:- url- url。apsx/egValue=1使用javascript读取此url将键和值放入cookie中。然后你可以从服务器读取cookie值并将其放入会话。
希望能有所帮助。