Asp.net mvc ASP MVC 5 TempData不使用重定向操作?

Asp.net mvc ASP MVC 5 TempData不使用重定向操作?,asp.net-mvc,session,redirect,tempdata,Asp.net Mvc,Session,Redirect,Tempdata,我的控制器中有以下临时数据: public ActionResult Index(string query = null) { TempData["message"] = string.Format("test message"); return RedirectToAction("Index", "Posts"); } 在my_layout.cshtml文件中,我有以下内容: @if (TempData["message"] !=

我的控制器中有以下临时数据:

    public ActionResult Index(string query = null)
    {

        TempData["message"] = string.Format("test message");

        return RedirectToAction("Index", "Posts");
    }
在my_layout.cshtml文件中,我有以下内容:

 @if (TempData["message"] != null)
 {
      <div class="message">@TempData["message"]</div>
 }
所以基本上,它在重定向操作上似乎不起作用。奇怪的是,它以前工作过,所以不知道突然发生了什么


有什么想法吗?

在将对象分配给TempData之前,必须对其进行序列化。比如说,

AccountHolderDetails user = new AccoundHolderDetails();
TempData["UserData"] = JsonConvert.SerializeObject(user);
并通过反序列化来检索对象

var user = JsonConvert.DeserializeObject<AccountHolderDetails>(TempData["UserData"].ToString());
var user=JsonConvert.DeserializeObject(TempData[“UserData”].ToString());

您的代码看起来非常好。你在其他地方读TempData吗?@Shyju不,没有在其他地方读TempData。你找到解决方法了吗。我也有同样的问题。在web.config中添加httpcookie时似乎会发生这种情况。
var user = JsonConvert.DeserializeObject<AccountHolderDetails>(TempData["UserData"].ToString());