对于服务器的下一个请求,我需要将IEnumerable对象存储到Tempdata中。由于Tempdata无法存储对象,因此在放入Tempdata之前,我发现以下扩展方法可以序列化和反序列化。使用此方法后,我可以将对象存储到Tempdata。但是,当我尝试在下一个操作方法中使用它时,遇到了以下运行时错误。 “无法反序列化当前JSON数组”。请帮助我解决此问题。
我的代码:
public ActionResult GetData(){
List<EmployeeViewModel> webform =
_service.GetListOfWebformData(id).ToList();
TempData.Put("webform", webform); }
public ActionResult ShowData(){
var WebformData = TempData.Get<EmployeeViewModel>("webform");
return View(WebformData);}
我用于Tempdata的扩展方法如下
public static class TempDataExtensions
{
public static void Put<T>(this ITempDataDictionary tempData, string key, T value) where T : class
{
tempData[key] = JsonConvert.SerializeObject(value);
}
public static T Get<T>(this ITempDataDictionary tempData, string key) where T : class
{
object o;
tempData.TryGetValue(key, out o);
return o == null ? null : JsonConvert.DeserializeObject<T>((string)o);
}
}