【发布时间】:2012-01-27 03:03:21
【问题描述】:
我对如何在 MVC 应用程序中使用隐藏字段来持久化数据感到有些困惑。 (如果有意义的话,我也愿意使用 Session。)
基本上,我有一个应用程序会提出一系列问题(根据用户给出的答案,这些问题可能会以不同的顺序出现)。这些问题是作为来自单个控制器的部分视图提供的(它调用一个帮助方法,该方法了解应该如何提出问题的顺序)。当用户回答问题时,我使用 Ajax 提交当前答案,并用他们当前的答案更新侧边栏。 (他们可以随时返回以更改问题的答案。)我的问题的所有答案都存储在一个“答案”模型对象中(每个答案都有一个属性)。
根据我对隐藏字段的理解,我必须为每个问题在每个视图中提供隐藏字段,以便保留该数据。这是正确的吗?
如果这是正确的,那么使用 Session 对象是否更有意义?我认为每次都必须使用所有模型类型更新每个视图是低效的(而且非常不干)。似乎人们对此有不同的看法,而且我在持久化数据(以及不使用某些数据源)方面没有受过足够的教育,无法确定我的决定。
【问题讨论】:
-
您是否只在调查完成后才保存答案?如果没有,您只需要在页面上为当前视图中正在询问的问题设置隐藏字段。如果你只保存一次,你可以使用 session 或 David 的序列化 json 建议(我会建议)。
标签: asp.net-mvc-3 session persistence hidden-field