9

我有一个使用一个模型对象的多步骤表单,我需要在步骤之间保留它。只有在最后一步之后,对象才会保存到数据库中。我见过有人建议使用 HTML.Serialize 但这个选项有多安全?

我的模型对象也会随着用户填写表单而增长,这意味着带有序列化数据的隐藏表单字段将增加我的 HTML 输出的大小。

这种情况的最佳做法是什么?

4

2 回答 2

8

为此,我使用了TempData

您可以在 TempData 中存储一个对象(模型数据的副本),并在下一个请求中使用它。如果在下一个请求中没有设置它,它将被“销毁”。所以你不必担心它会填满你的会话。

于 2011-03-03T14:23:55.253 回答
0

将您的控制器想象成一个状态机,其中每个操作都是向导中的一个步骤。关于步骤之间的持久性并不是什么大问题,反正就是一个简单的 POCO 作为 Dto,命令将被发送到您的域接口进行验证和处理。你可以将它存储在你的 IoC、会话、缓存、文件系统中……我希望你明白了。保持简单和干净。

于 2011-03-03T21:12:43.063 回答