我正在使用TempData来保存从ChildAction呈现的表单的ModelState错误。该表单允许用户在博客帖子上发表评论。如果ModelState无效,则将错误复制到TempData,然后重定向到我的ShowPost
操作,该操作通过ChildAction显示注释表单,并附带验证错误。
我担心的是,我实际上是在将ModelState错误保存到TempData并在ChildAction中重新显示它们之间重定向两次。这是因为在我的ShowPost
操作中,我还要检查是否存在与当前帖子匹配的有效slug,然后重定向以包含该slug,如果它丢失/不正确。这意味着如果用户发表评论,他们会发布到:
/posts/comment
将重定向到:
/posts/1/
然后重定向到:
/posts/1/article-title
显示评论错误之前。这对我在我的测试服务器上工作正常,但我是否会遇到第二次重定向的任何特定问题?我问,因为我读过的帖子/问题暗示TempData需要在重定向后直接使用。如果不是,请求之间的数据可能会丢失,我想知道我的第二次重定向是否会导致这种情况。
答案 0 :(得分:2)
在MVC 2和3中,TempData始终可以访问一次。访问给定密钥后,临时数据将被销毁。