Передача вложенного десериализованного JSON из контроллера в представление - PullRequest
0 голосов
/ 13 марта 2019

После использования HttpClient класс для преобразования моего JSON в строку и десериализации его с помощью

var response = Res.Content.ReadAsStringAsync().Result;

data = JsonConvert.DeserializeObject<List<Employee>>(response);

Как передать данные, которые я получаю в Контроллере от вызова с использованием приведенной ниже модели, в представление?

        public class RuleType
        {
            public int Id { get; set; }
            public string Description { get; set; }
            public bool Inactive { get; set; }
        }

        public class RuleCategory
        {
            public int Id { get; set; }
            public string Description { get; set; }
            public bool Inactive { get; set; }
        }

        public class Employee
        {
            public string Description { get; set; }
            public object EndDateTime { get; set; }
            public int Id { get; set; }
            public bool Inactive { get; set; }
            public int RuleAction { get; set; }
            public DateTime StartDateTime { get; set; }
            public RuleType RuleType { get; set; }
            public RuleCategory RuleCategory { get; set; }
        }

Вот один объект из звонка

[
    {
        "Description": "Test Description",
        "EndDateTime": null,
        "Id": 1,
        "Inactive": false,
        "RuleAction": -2,
        "StartDateTime": "2017-01-06T14:58:58Z",
        "RuleType": {
            "Id": 6,
            "Description": "Test Description",
            "Inactive": false
        },
        "RuleCategory": {
            "Id": 1,
            "Description": "Description",
            "Inactive": false
        }
    }
]

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Не уверен, что я что-то упустил, но если у вас есть объект, который вы хотите вернуть в представление из контроллера, вы просто:

return View(viewModel); // in your case viewModel = 'data'
0 голосов
/ 13 марта 2019

Как уже говорили другие, вы должны десериализовать JSON в RootObject вместо Employee, например так:

var response = Res.Content.ReadAsStringAsync().Result;
var data = JsonConvert.DeserializeObject<List<RootObject>>(response);

Затем вы можете передать модель в представление, используя просто:

return View(data)

Вам также следует подумать о переименовании RootObject во что-то более полезное (например, employee?), Поскольку RootObject не очень полезное или описательное имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...