1

我需要存储输入的值textBox'sdropdownList'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? 我不知道该怎么做。

4

2 回答 2

1

是的,如果会话中的对象具有所有属性,您可以根据需要操作它们。

var incident = Session["MyIncident"] != null ? (Incident)Session["MyIncident"] : new Incident();
于 2013-03-28T09:26:22.313 回答
0

是的,这是解决方案之一,您可以做的是检查 Session 是否具有 Object ,如果是,则将其序列化并添加更多内容并使用相同的密钥将其保存回会话中。如果为空,则创建新对象并启动。这种方法的一个问题是,如果您丢失了会话,则无法将其取回(可能是服务器等问题)。如果您有更多步骤,最好在某些步骤后将其保存在数据库等持久性位置。

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 ;
} 
于 2013-03-28T09:27:02.567 回答