Newtonsoft.Json.dll中发生“ Newtonsoft.Json.JsonSerializationException”,但未在用户代码中处理

时间:2018-11-22 17:58:36

标签: json deserialization tempdata

对于服务器的下一个请求,我需要将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);
    }
}

0 个答案:

没有答案