【问题标题】:ASP.NET MVC forbid access after form was submited表单提交后 ASP.NET MVC 禁止访问
【发布时间】:2017-03-17 18:10:45
【问题描述】:
我正在构建一项调查,向客户发送一个带有与数据库相关的 ID 的直接链接,这样我们就可以知道客户是谁,而无需他们填写个人信息。我将它基于编辑脚手架,因为该行是在数据库中预先创建的,并且只需要编辑以填写问题。
为清楚起见,网址是 mydomain.com/controller/action/id -> 其中 id 是保存调查答案的行的 PK。
我面临的问题是,如果他们再次访问直接链接,他们可以根据需要多次编辑调查。我想这样做,一旦提交,链接就会指向显示“调查已提交”的页面
【问题讨论】:
标签:
asp.net
asp.net-mvc
routes
【解决方案1】:
向该行添加一个布尔列,并在首次提交调查时将其设置为 true。在加载调查的方法中,在返回视图之前检查该列的值。如果值为 true,则重定向到另一个控制器操作,这会将用户引导至“已提交调查”页面。
【解决方案2】:
您有几个选择。实际上,如果已提交调查,您希望禁用该调查。
我能想到的两个解决方案是:
- 如果调查已经填写完毕,请不要让他们编辑。
- 如果您希望用户能够在提交调查之前对其进行编辑,请使用“提交日期”字段。如果填写了该字段,则调查已完成且无法编辑。