我只是想在我的sitecore应用程序中实现Post-Redirect-Get模式。
当我从一个控制器重定向到另一个控制器时,我看不到Tempdata。
[HttpPost]
public ActionResult Select()
{
TempData["SelectPost"] = "SomeValue";
var path = PaymentPath;
return RedirectToRoute(MvcSettings.SitecoreRouteName, new { pathInfo = path});
}
public ActionResult Payment()
{
var tempDataValue = TempData["SelectPost"];
//Value is coming as null always
}
我甚至尝试使用 RedirectToAction 和重定向,并明确调用 TempData.keep()
我的所有页面都是控制器渲染。
我错过了什么吗?我正在使用Sitecore.NET 7.0。 (rev.130424)
答案 0 :(得分:0)
TempData
仅适用于当前和下一个请求。因此,如果您POST
至/select
并重定向至/payment
(GET
),则TempData
值将可用。
在您的示例中,您似乎正在重定向到SitecoreRouteName
和然后重定向到/payment
,在这种情况下,您的TempData
值将不再是可用。
如果您需要存储的内容超过当前和下一个请求,我建议您使用Session
,cookie或数据库来存储您的值。