在ajax请求期间无法访问TempData?

时间:2015-08-25 17:14:59

标签: c# asp.net ajax json asp.net-mvc

为什么我们在ajax请求期间无法访问TempData。

控制器:

TempData["MytempData"] = MyMessage;
return Json(true, JsonRequestBehavior.AllowGet)

查看:

$.ajax(
{
type: 'POST',
success: function (result) {
value=TempData["MytempData"];//why this is not possible
},
});

我也知道我可以使用json对象访问这些数据,如下所示

return Json(new {isSucess=true,Message=MyMessage},JsonRequestBehavior.AllowGet)

但我的问题不是关于如何将数据从控制器传递到视图。我只是想知道为什么我们在ajax请求期间无法访问TempData的原因。

1 个答案:

答案 0 :(得分:0)

剃刀编译器将value=TempData["MytempData"]视为javascript,不会尝试将其编译为C#。告诉剃刀它是C#,你需要先加@

$.ajax(
{
type: 'POST',
success: function (result) {
value=@TempData["MytempData"];//Should work now.
},
});

但请记住,object类型的类型,所以您可能也希望将其投射。