Я сделал модель для приема данных JSON из Jira API. Я десериализирую данные JSON с помощью Newtonsoft.Json и сохраняю их в объекте с именем jiraObj. Если я поставлю точку останова на строке return View(jiraObj)
, я увижу, что мой объект успешно заполнен информацией.
Я не уверен, как показать информацию на мой взгляд. Я пытался вызвать класс контроллера и имена свойств, но мне кажется, что я могу достичь только своего верхнего уровня в модели.
Здесь я собираю информацию с помощью Jira API.
Я звоню своему классу Jira, чтобы создать объект для хранения ожидаемой информации от моей модели.
request.AddHeader("Authorization", "Basic " + Base64Encode(accessToken));
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
Jira jiraObj = JsonConvert.DeserializeObject<Jira>(content);
ViewBag.Title = "Home Page";
return View(jiraObj);
Это фрагмент первых нескольких классов в моем файле модели.
public class Jira
{
public ICollection<Body> Issues { get; set; }
}
public class Body
{
public int Id { get; set; }
public string Key { get; set; }
public Fields Fields { get; set; }
}
public class Fields
{
public Status Status { get; set; }
public Description Description { get; set; }
public string Summary { get; set; }
public Assignee Assignee { get; set; }
public Creator Creator { get; set; }
public Reporter Reporter { get; set; }
}
Моя модель очень вложенная, я могу только получить доступ к public ICollection<Body> Issues { get; set; }
У меня не было проблем с доступом к свойствам только с одним классом. Я не могу понять это после нескольких часов борьбы.
Редактировать: просмотр кода, пробовал много разных итераций следующего
@model IEnumerable<TestJira.Models.Jira>
@foreach (var item in Model)
{
<div>
@item.Summary
</div>
}
Редактировать 2: работает следующий код.
@model TestJira.Models.Jira
@Model.Issues.ToList()
@foreach (var Issue in Model.Issues)
{
<div>@Issue.Fields.Summary</div>
}