【发布时间】:2013-05-29 14:47:02
【问题描述】:
我有一个 MVC 应用程序,用户在其中填写 4 步表单,然后转到“确认”屏幕。在确认屏幕上,如果他们选择修改他们的信息,我使用 RedirectToAction 将他们带回第一步视图,并传递一个 URL 参数“modify=true”,它告诉控制器使用已经创建的会话对象而不是从数据库创建一个新对象并显示一个空表单。但是一旦他们提交了第 1 步的表单,我想将它们从我的控制器发送到第 2 步视图以及“modify=true”参数。似乎没有办法将视图模型返回到视图并传递查询字符串参数。我怎样才能做到这一点?
我已经考虑在视图模型中添加一个布尔值来表示“inReview”,但是我为每个视图使用不同的视图模型,它们都很干净,看起来这个布尔值会使事情变得有点混乱。
我也考虑过将 bool 添加到 viewbag 或 viewdata,但是我会使用提交按钮来传递该值,并且“modify=true”参数会丢弃 URL,可能会混淆用户并且肯定会混淆编码。 谢谢
【问题讨论】:
-
你不能将它保存在会话变量中吗?当用户单击“修改”时将变量设置为 true,并在用户完成表单时将其设置为 false。
-
好吧,我正在使用带有 url 字符串参数的操作链接让它们回到第 1 步。一旦重定向到第 1 步,我就可以在会话中设置它,但如果可以的话,它看起来会更干净只是继续传递该网址。
-
用户是经过身份验证的还是匿名的?当用户回来时,是否应该填写表格?还是用户每次[他登录]时都会填写表格?
标签: asp.net-mvc asp.net-mvc-routing