为什么我们在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的原因。
答案 0 :(得分:0)
剃刀编译器将value=TempData["MytempData"]
视为javascript,不会尝试将其编译为C#。告诉剃刀它是C#,你需要先加@
$.ajax(
{
type: 'POST',
success: function (result) {
value=@TempData["MytempData"];//Should work now.
},
});
但请记住,object
类型的类型,所以您可能也希望将其投射。