在ActionResults

时间:2017-08-09 15:27:41

标签: asp.net-mvc model tempdata

我根据存储过程返回的数据填充列表,这首先出现在SpecificArea ActionResult中:

public ActionResult SpecificArea(ModelCallDetails call, int id = 0 )
    {

        ReturnSpecificAreas(call, id);
        return PartialView("SpecificArea", listCallDetails);
    }

显示列表时,每一行都是一个actionlink,它会将数据发送到SpecificAreaWorker:

[HttpGet]
    public ActionResult SpecificAreaWorker(ModelCallDetails call, int id)
    {           
        TempData["StringOfIds"] = StringOfIds;
        ReturnSpecificAreas(call, id);
        if (ResponseMessage == "Successful")
        {



            return PartialView("SpecificArea", listCallDetails);
        }

        else
        {

            return RedirectToAction("ViewCall");


        }

    }

我想收集点击的每一行的id并将它们存储在模型的列表中,以便我可以创建一个id的字符串。但是,每次单击表中的一行时,它都会刷新模型,我不再拥有ID列表。

  public void ReturnSpecificAreas(ModelCallDetails call, int id)

    {

        SelectedAffectedServiceID = id;
       call.AffectedServiceList.Add(SelectedAffectedServiceID);

        foreach (int item in call.AffectedServiceList)
        {
            if (TempData["StringOfIds"] != null)
            {
                StringOfIds = TempData["StringOfIds"].ToString();
                StringOfIds += string.Join(",", call.AffectedServiceList.ToArray());

            }

            else
            {

                StringOfIds += string.Join(",", call.AffectedServiceList.ToArray());
            }

        }

我试图保留tempdata中的数据,但无法设法执行此操作 - 每次单击actionlink时都会刷新tempdata吗?有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

我相信你正在使用MVC5?如果是这样,请使用

  

System.Web.HttpContext

这会获得当前请求

保存......

System.Web.HttpContext.Current.Application["StringOfIds"] =  StringOfIds;  //Saves global
System.Web.HttpContext.Current.Session["StringOfIds"] =  StringOfIds;  //Saves Session

要检索...

StringOfIds = (string) System.Web.HttpContext.Current.Application ["StringOfIds"]; //Retrieves from global memory
StringOfIds = (string) System.Web.HttpContext.Current.Session ["StringOfIds"]; //retrieves from session memory
祝你好运。