0

我正在使用 TempData 为从 ChildAction 呈现的表单保留 ModelState 错误。该表单允许用户在博客文章上发表评论。如果 ModelState 无效,则将错误复制到 TempData,然后我重定向到我的ShowPost操作,该操作通过 ChildAction 显示评论表单,并包含验证错误。

我担心的是,我实际上在将 ModelState 错误保存到 TempData 和在 ChildAction 中重新显示它们之间进行了两次重定向。这是因为在我的ShowPost操作中,我还在检查是否存在与当前帖子匹配的有效 slug,然后如果它丢失/不正确,则重定向以包含该 slug。这意味着如果用户发表评论,他们会发布到:

/posts/comment

这将重定向到:

/posts/1/

然后重定向到:

/posts/1/article-title

在显示评论错误之前。这在我的测试服务器上对我来说工作正常,但是我会在第二次重定向时遇到任何特殊问题吗?我问是因为我读过的帖子/问题表明 TempData 需要在重定向后直接使用。如果不是,数据可能会在请求之间丢失,我想知道我的第二次重定向是否会导致这种情况。

4

1 回答 1

2

在 MVC 2 和 3 中,TempData 总是可以访问一次。访问给定密钥后,临时数据将被销毁。

于 2011-10-16T22:50:05.503 回答