我有一个MVC asp.net测验应用程序。你有足够的时间参加测验,如果时间用完,那么答案会自动提交。
目前,我在Javascript中设置了计时器,并且在控制器中保留了一段时间 - Session["EndTime"]
。但是,我的理解是,用户可以编辑Javascript并在Javascript中实现时更改计时器。如果为true,如何在Controller中运行计时器并在计时器用完后发送一个Action?
答案 0 :(得分:3)
服务器无法强制浏览器提交任何内容,这就是JavaScript代码的功能。并且,是的,如果用户愿意,用户可以选择修改它。
服务器将做的是跟踪两件事:
第一个值包含在发送到浏览器的表单中,基本上只是一个隐藏的表单字段。将测试结果发布到服务器时,服务器端代码使用标识符查找持久日期/时间戳,以将其与当前日期/时间进行比较。如果超过预期的时间已过,请拒绝测试结果并显示错误。
基本上,服务器端代码无法强制用户提交结果。但它可以拒绝未及时提交的结果。