ASP.NET MVC中如何处理多部分表单?

5
我希望能在ASP.NET MVC中创建一个跨3页的注册表单。
在提交第三页之前,应该使用什么方法来保存用户第一页和第二页的答案?
这是使用TempData、Session还是MVC特有的其他方法完成的?
是否有如何实现此功能的示例?
3个回答

3

Steven Sanderson在《Pro ASP.NET MVC Framework》(pp 396-406)中提供了一个完整的示例。他根据需要将数据发送到页面或序列化到TempData,并使用一对自定义的OnActionExecuting/OnResultExecuted方法在后台进行管理。在控制器内部,数据会像魔术般出现,因此它比我想象的不够透明,但展示了一种基本的持久性方法,避免了会话状态。


2
TempData使用SessionState作为基础。我真的需要那本书。 - andymeadows
2
虽然 TempData 是建立在会话存储之上的,但由于内容在一次请求后会自动清除,因此使用起来更加方便。 - keithm

0

0

我认为在选择解决方案之前,您应该考虑一些标准。 其中一些是:

  1. 您是否拥有已验证的用户或公共(匿名)用户?
  2. 您存储在页面间的信息有多敏感?
  3. 他们被允许离线并在稍后返回以继续之前的工作吗?
  4. 您存储的数据有多大(总共)以及您预计有多少并发用户?

这些问题将引导您决定在哪里以及如何存储数据。 一旦确定了存储方式,您就可以开始寻找良好的实现方法。


这是用户注册表单,因此他们不会成为经过身份验证的用户。信息的敏感性将与许多大型网站在注册时所需的典型信息相同。 - KingNestor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接