在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 . .

在ASP中保存一定数量的会话.净,c#

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值并将其放入会话。

希望能有所帮助。