Asp.net MVC中的TempData的工作方式与Asp.net中的会话不完全相同
本文关键字:Asp net 会话 不完全 工作 MVC 中的 TempData 方式 | 更新日期: 2023-09-27 18:29:32
我在MVC应用程序中使用TempData[]
,但它不像那个会话那样正常工作。
登录页面后刷新页面,然后tempdata为空,请建议我和也用于web.config
<sessionState mode="InProc" timeout="10"/>.
TempData仅可用于用户的会话,因此它只会持续到我们读取它并在HTTP请求结束时被清除为止。一个适合TempData使用的场景是当数据需要在两个请求之间保持时——重定向场景。您可以使用方法Keep来存储直到下一次请求
TempData.Keep
http://msdn.microsoft.com/en-us/library/ee703497.aspx
要从控制器填充数据,请创建操作:
public ActionResult GetData()
{
// get data from your data source, replace with db call or where to get data
var data = new [] {"sample1", "sample2"};
return Json(data, JsonRequestBehavior.AllowGet);
}
当您需要数据时在客户端上:
$.getJSON(@Url.Action("GetData"), function(data) {
// fill dropdown instead alert
alert(data);
});
查看更多:
AJAX请求aspnet
类似的问题,但适用于后
刷新后应该为null,因为TempData只用于单个重定向。在您的情况下,必须使用Session。
您可以将数据存储在会话中。
例如
public static int Points
{
get
{
int points = Convert.ToInt32( HttpContext.Current.Session["PointssessionKey"]);
return points;
}
set
{
HttpContext.Current.Session["PointssessionKey"] = value;
}
}
并将临时数据作为保存
TempData.Keep