两个控制器sitecore之间没有维护临时数据

时间:2014-03-08 00:46:46

标签: asp.net-mvc design-patterns sitecore

我只是想在我的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)

1 个答案:

答案 0 :(得分:0)

TempData仅适用于当前和下一个请求。因此,如果您POST/select并重定向至/paymentGET),则TempData值将可用。

在您的示例中,您似乎正在重定向到SitecoreRouteName然后重定向到/payment,在这种情况下,您的TempData值将不再是可用。

如果您需要存储的内容超过当前和下一个请求,我建议您使用Session,cookie或数据库来存储您的值。

相关问题