使用会话变量存储扩展列表

Using session variables to store expanding lists

我正在开发一个用户可以输入数据的应用程序:举个例子,他们可以输入产品名称、描述和价格。还有两个按钮:一个按钮,"Add new product",将允许他们暂时保存所有产品数据(不保存到数据库中)并允许他们输入有关产品的其他信息;另一个按钮 "Save changes" 将保存所有通过 "Add new product" 添加的产品。

我对会话变量完全陌生,但它们看起来与 Viewbag/Tempdata/etc 非常相似。但是我想弄清楚我是否可以从会话变量中创建一个列表,并在用户按下 "Add new product" 直到他们点击 "Save changes" 时将产品添加到列表中。这可能吗?

最好通过jquery将所有信息保存在数组变量中。当您需要 "Save changes" 将数组变量传递给您的控制器时。 可能对您有所帮助 LINK

为此做了一些修改。在我的视图模型中,我创建了一个计数器变量来跟踪产品并在控制器被调用时递增它(IE,他们添加的第一个产品为 1,第二个产品为 2,等等)。因此,一旦控制器在单击“添加新产品”按钮时被调用,我就会传入视图模型并检查计数器变量。如果它 == 1,我创建一个新列表,附加该项目,并使会话变量等于该列表。否则,如果它更大,我将获取包含列表的会话变量,追加该项目,然后重新设置会话变量。

可能需要在某个时候清除,但我已经到了,到目前为止这似乎有效。