使用会话在测验中跟踪多个ID

时间:2012-02-24 14:15:02

标签: asp.net-mvc model-view-controller session cookies

我在MVC中进行测验。在回答完所有问题后,在测验完成后将结果写入数据库。到目前为止一切都很好。

有多选和单选的问题 答案和问题来自数据库,随着时间的推移会发生变化。

在测验期间,我会通过几个会话来跟踪用户的回复 我有一个int(索引)来跟踪哪个问题是当前的,prev。而下一个。
我有一个List< -int-> with QuestionID's。
我有一个List< -List< -int-> - >使用answers-id所以我可以看到哪些答案适合哪个问题。

只要用户使用我的“上一个问题”和“下一个问题”按钮,一切都会非常顺利,但如果用户使用“后退”和“前进”按钮,则会破坏我的索引。

所以我的问题是如何防止这种情况发生?

我可以强制用户回到“家”,清除会话并重新开始,如果他按下后退按钮吗?

如果您需要更多信息,请告诉我......

1 个答案:

答案 0 :(得分:0)

在webforms中,我会将“当前索引”添加到ViewState,并将我的Session索引重置为该值(如果存在)。

MVC没有ViewState,所以也许你可以使用<input type=hidden>来获得类似的效果。