使用 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
}
}
]
答案 0 :(得分:1)
不确定我是否缺少什么,但是如果您有一个对象想要从控制器返回到视图,则只需:
return View(viewModel); // in your case viewModel = 'data'
答案 1 :(得分:0)
正如其他人已经在这里所说的那样,您应该将JSON反序列化为RootObject而不是Employee,就像这样:
var response = Res.Content.ReadAsStringAsync().Result;
var data = JsonConvert.DeserializeObject<List<RootObject>>(response);
然后可以使用以下方法将模型传递到视图中:
return View(data)
您还应该考虑将RootObject重命名为更有用的名称(例如employee?),因为RootObject并不是一个非常有用或描述性的名称。