如何在视图中显示反序列化嵌套 JSON 对象的属性?

How to display properties from a deserialized, nested JSON object in your view?

我制作了一个模型来接受来自 Jira API 的 JSON 数据。我使用 Newtonsoft.Json 反序列化 JSON 数据并将其保存在名为 jiraObj 的对象中。如果我在 return View(jiraObj) 行放置一个断点,我可以看到我的对象已成功填充信息。

我不确定如何在我的视图中显示信息。我试过调用控制器 class 和 属性 名称,但我似乎只能达到模型中的上层 class。

这里我用Jira收集信息API。 我调用我的 class 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);

这是我的模型文件中前几个 classes 的片段。

 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; }

我只用一个 class 就可以轻松访问属性。折腾了几个小时好像想不通。

编辑:查看代码,尝试了以下许多不同的迭代

@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>
}

我会更改视图中的模型声明,使其不可枚举,并使用 for 循环。:

@model TestJira.Models.Jira


    @for (var i = 0; i < Model.Issues.Count; i++)
    {
        <div>
            Model.Issues[i].Summary
        </div>
    }