我的控制器中有以下tempdata:
public ActionResult Index(string query = null)
{
TempData["message"] = string.Format("test message");
return RedirectToAction("Index", "Posts");
}
在我的_layout.cshtml文件中,我有以下内容:
@if (TempData["message"] != null)
{
<div class="message">@TempData["message"]</div>
}
但没有显示任何内容。如果执行以下操作,即不从我的控制器方法重定向,则会显示该消息。
public ActionResult Index(string query = null)
{
TempData["message"] = string.Format("test message");
return View();
}
所以基本上它似乎不适用于RedirectToAction。奇怪的是它之前有用,所以不确定突然发生了什么?
有什么想法吗?
答案 0 :(得分:0)
在将对象分配给TempData之前,必须先对其进行序列化。例如,
AccountHolderDetails user = new AccoundHolderDetails();
TempData["UserData"] = JsonConvert.SerializeObject(user);
并通过反序列化来检索对象。
var user = JsonConvert.DeserializeObject<AccountHolderDetails>(TempData["UserData"].ToString());