«Newtonsoft.Json.JsonSerializationException» произошло в Newtonsoft.Json.dll, но не было обработано в коде пользователя - PullRequest
0 голосов
/ 22 ноября 2018

Мне нужно сохранить свой IEnumerable объектов в Tempdata для моего следующего запроса с сервера.Так как Tempdata не может хранить Объекты, я нашел метод расширения ниже, чтобы сериализовать и десериализовать перед помещением в Tempdata.После этого метода я могу сохранить свой объект в Tempdata.Но, когда я пытаюсь использовать его в своем следующем методе действия, я сталкиваюсь со следующей ошибкой во время выполнения.Msgstr "Невозможно десериализовать текущий массив 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);
    }
}
...