【问题标题】:Concerns with using TempData使用 TempData 的问题
【发布时间】:2011-10-16 21:27:56
【问题描述】:

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

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

/posts/comment

将重定向到:

/posts/1/

然后重定向到:

/posts/1/article-title

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

【问题讨论】:

  • 你能指出你读过的哪些问题让你有这样的想法吗?他们需要被否决或评论,因为自 MVC 1 以来这已经发生了变化。
  • 我最近读了很多关于 TempData 的文章,但我似乎找不到所有给我这种印象的来源。然而,我再次找到的其中一个是this 答案,它把我送到了this 博客文章。我会继续搜索我的历史,看看是否能找到其他来源。肯定还有其他人。

标签: asp.net-mvc redirect modelstate tempdata


【解决方案1】:

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

【讨论】:

  • 谢谢。我不知道这随着新版本的 MVC 发生了变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
相关资源
最近更新 更多