TempData未显示resultview并返回null

时间:2018-02-21 10:38:51

标签: asp.net-mvc asp.net-mvc-4

我在TempData上存储值有问题,实际上我正在学习TempData的行为,并尝试了来自各个站点的一些可行的例子。这就是问题:我在一些linq操作后打开我的上下文文件我将它保存到我的变量,我使用Breakpoint检查数据,但数据不在TempData中。请任何人都可以告诉我数据存储的位置,以便我可以使用Visual studio的断点进行检查。这是我的代码

public ActionResult Index()
{
     ReadContext db = new ReadContext();

      var lst = (from p in db.data1
                   join f in db.data2
                   on p.ID equals f.ID
                   select new
                   {
                       Sr = p.Sr,
                       Group = p.Group,
                       ID=p.ID,

                       CompanyName = f.CompanyName
                   }).ToList()
                   .Select(x => new dataViewModel()


                   {
                       ID=x.ID,
                       Sr = x.Sr,
                       Group = x.Group,

                       CompanyName = x.CompanyName
                   });
        TempData["l1"] = lst;
        return View(lst);
    }

将输出包括为图像(Var的第一个beakpoint)![1]:https://imgur.com/osY345F
TempData的第二个断点![2]:显示空值的https://imgur.com/5oIDN9e在TempData上。我需要做些什么才能看到值在断点中可见。

2 个答案:

答案 0 :(得分:0)

默认的TempData提供程序使用cookie。要在TempData中存储对象,您需要先将其序列化。

TempData["l1"] = JsonConvert.SerializeObject(lst); //using Newtonsoft.Json;

应尽量减少TempData中存储的数据量。而不是将整个记录存储在TempData中,我建议只存储一个ID列表。

  

应用程序是否只使用TempData,相对较小   数据量(最多500字节)?如果是这样,cookie TempData提供者   将为每个携带TempData的请求添加一小笔费用。如果不,   会话状态TempData提供程序可以避免有益   在每个请求中绕过大量数据,直到   消耗TempData。

     

[ASP.NET核心中的会话和应用程序状态简介] [https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?tabs=aspnetcore2x#tempdata]

答案 1 :(得分:0)

 var lst = (from p in db.data1
                   join f in db.data2
                   on p.ID equals f.ID
                   select new
                   {
                       Sr = p.Sr,
                       Group = p.Group,
                       ID=p.ID,

                       CompanyName = f.CompanyName
                   }).ToList()
                   .Select(x => new dataViewModel()


                   {
                       ID=x.ID,
                       Sr = x.Sr,
                       Group = x.Group,

                       CompanyName = x.CompanyName
                   }).ToList();