会话变量+ WebMethod变量值未更新

本文关键字:更新 变量值 WebMethod 变量 会话 | 更新日期: 2023-09-27 18:08:15

我有一个带有下拉列表的web应用程序。当一个新的索引被选中时,我必须将值存储到一个会话变量中,这是在Session_Start事件上创建的。

protected void Session_Start(object sender, EventArgs e)
{
    Session.Add("testValue", "test");
}

在selecteindex更改事件时,我将设置新值,如下所示

Session["testValue"] = DropDownList.SelectedItem.Text;

我有一个web服务,我检索会话变量的值,像这样:

[WebMethod(EnableSession = true)]
public string getValue()
{
    var testVal = Session["testValue"].ToString();
    return testVal.ToString();
}

我从控制台应用程序连接到web服务并检索由getValue()返回的值,但是初始值总是被返回。有什么想法吗?

会话变量+ WebMethod变量值未更新

这个问题是因为当控制台应用程序运行时,似乎创建了一个新的会话。使用应用状态使用应用。设置和应用。解决问题。希望我不会有问题,当系统将由多个用户使用。

检查下拉列表项的值是否不同。

这里的值没有改变,你没有改变值。所以没有期望

public string getValue()
{
    var testVal = Session["testValue"].ToString();
    return testVal.ToString();
}

错误可能在下拉列表

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
  Session["testValue] = dropdownlist1.SelectedItem.text;
}
}

,

protected void dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
{
Session["testvalue"] = dropdownlist1.SelectedItem.text;
}

也试试

System.Web.HttpContext.Current.Session["testvalue"]