MVC3 多步骤形式 - 如何持久化模型对象

发布于 2024-10-20 06:35:02 字数 185 浏览 9 评论 0原文

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

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

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

I have a multi step form which uses one model object and I need to persist it between the steps. The object gets saved to the database only after the final step. I have seen people suggest using HTML.Serialize but how secure is this option?

Also my model object will grow as the user fills up the form which means the hidden form field with serialized data will add up size to my HTML output.

Whats the best practice for this kind of situation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

相守太难 2024-10-27 06:35:02

我已使用 TempData 来实现此目的。

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

I've use the TempData for this purpose.

You can store an object (a copy of your model data) in TempData, and use it in the next request. If it is not set-back in the next request it will be "destroyed". So you do not have to worry that it is filling up your session.

公布 2024-10-27 06:35:02

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

Think about your Controller as a state machine where every action is a step in the wizard. About the persistence between steps is not big deal anyway is a simple POCO as a Dto, Command which is gonna to be send to your domain interface for validation and processing. You can store it in your IoC, Session, Cache, FileSystem ... I hope you got it. Keep it simple and clean.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文