我有一个带有下拉列表的网络应用。选择新索引时,我必须将值存储到Session_Start事件中创建的会话变量。
protected void Session_Start(object sender, EventArgs e)
{
Session.Add("testValue", "test");
}
在selectedindex已更改事件中,我正在设置新值
Session["testValue"] = DropDownList.SelectedItem.Text;
我有一个Web服务,我在其中检索会话变量的值,如下所示:
[WebMethod(EnableSession = true)]
public string getValue()
{
var testVal = Session["testValue"].ToString();
return testVal.ToString();
}
从控制台应用程序我连接到Web服务并检索getValue()
返回的值,但始终返回初始值。有什么想法吗?
答案 0 :(得分:1)
问题是因为在运行控制台应用程序时,似乎创建了一个新会话。使用Application.Set和Application.Get使用Application状态解决了这个问题。希望我的系统将被多个用户使用时不会出现问题。
答案 1 :(得分:0)
此处值未更改,您未更改值。没什么可期待的
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"]
两部分
答案 2 :(得分:0)
检查下拉列表中项目的值是否不同。这对于所选索引更改事件的触发至关重要。