Kir*_*ula 5 asp.net asp.net-mvc tempdata
我有一个类似于以下内容的控制器操作,TempData由我的框架初始化。我注意到,如操作“ EmployeeUnderAge”所示,一旦读取该值,TempData不会清除该值。
TempData何时清除已读取的数据?
public class HomeController : Controller
{
public ActionResult Index(int iD)
{
var employeeAge = (int)TempData["Age"];
RouteData.Values.Add("Age", employeeAge);
return RedirectToAction("EmployeeUnderAge");
}
public ActionResult EmployeeUnderAge(int employeeAge)
{
var stillInTempData = (employeeAge == ((int) TempData["Age"]));
return (stillInTempData) ? View("Index") : View("Error");
}
}
Run Code Online (Sandbox Code Playgroud)
以下是使用Temp数据时要注意的一些关键点。
对临时数据的读访问不会立即从字典中删除项目,而只会标记为删除。
TempData不会总是删除已读取的项目。仅当操作导致HTTP 200(OK)状态代码(即:ViewResult / JsonResult / ContentResult等)时,才删除该项目
在导致HTTP 302的操作(例如任何重定向操作)的情况下,即使在访问数据时也将数据保留在存储中,这就是我的问题。TempData显然是为将数据传递到不同的控制器/动作而设计的,因此在重定向期间不清除是有道理的
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |