我根据存储过程返回的数据填充列表,这首先出现在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吗?有没有更好的方法来实现这一目标?
答案 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
祝你好运。