我正在使用AcceptVerbs
Scott Gu 的 Preview 5 博客文章中详细介绍了处理 ASP.NET MVC 中表单条目的方法:
- 用户通过 GET 获取一个空表单
- 用户通过 POST 将填写的表单发布到同一操作
- 该操作验证数据,采取适当的操作,并重定向到新视图
所以我不必使用TempData
。也就是说,我现在必须在此过程中添加一个“确认”步骤,并且似乎需要使用TempData
.
出于某种原因,我讨厌使用TempData
——这是一个需要围绕它进行设计的东西。
这是一个合理的担忧,还是我编造的?
没有必要厌恶 TempData...但如果使用不当,它肯定会表明设计不佳。如果您使用 RESTful URL,则 TempData 是将消息从 POST 操作传输到 GET 操作的最佳实践。考虑一下:
您在 URL Products/New 处有一个表格。表单发布到 Products/Create,验证表单并创建产品,成功时控制器重定向到 URL Products/1,出错时将重定向回 products/New 以显示错误消息。
Products/1 只是产品的标准 GET 操作,但我们希望显示一条消息,指示插入成功。 TempData 非常适合此目的。将消息添加到 Post Controller 中的 TempData 中,并在视图中添加一些 if 逻辑,然后就完成了。
失败时,我将在 formCollection 中输入的值和错误消息集合添加到 Post Action 中的 TempData,并重定向到初始 Action Prodcuts/New。
我已向视图添加逻辑,以使用之前输入的值以及任何错误消息来填充表单输入。对我来说看起来又漂亮又干净!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)