我需要存储在textBox's
和dropdownList's radio buttons
中输入的值....我的表单是一个多页面表单。
我不确定我在做什么,但这就是我的想法。
我有一个点击下一页的按钮。我已经在数据库表中的每个字段创建了一个类,我想插入它。在按钮单击事件上,我想将值分配给session
。这是我怎么做的?
protected void img_btnNext_Click(object sender, ImageClickEventArgs e)
{
Incident obj = new Incident();
obj.witnessesYes = rad_ReportYes.Checked;
obj.witnessesNo = rad_ReportNo.Checked;
// lots more objects .... to values
Session["mySession"] = obj;
Response.Redirect("~/Communicating.aspx");
}
所以当我进入下一页时,我还能继续吗?向obj
添加更多值并将其添加到session
?我不知道该怎么做。
答案 0 :(得分:1)
是的,如果会话中的对象具有所有属性,则无论如何都可以操作它们。
var incident = Session["MyIncident"] != null ? (Incident)Session["MyIncident"] : new Incident();
答案 1 :(得分:0)
是的,这是解决方案之一,您可以做的是检查Session是否具有Object,如果是,则序列化它并添加更多内容并使用相同的密钥将其保存回会话中。如果为空,则创建新对象并启动。使用这种方法的问题之一是,如果您丢失了会话,则无法将其恢复(可能是服务器等问题)。如果您有更多步骤,最好在某些步骤后将其保存在DB等持久性位置。
if(Session[keyName] != NULL)
{
Incident existingValue = (Incident)Session[KeyName]
existingValue.XXXX = 10;
Session[KeyName] = existingValue ;
}
else
{
Incident existingValue = new Incident()
existingValue.XXXX = 10;
Session[KeyName] = existingValue ;
}