我已将我的 JSON 响应反序列化为一个对象。什么是下一个步骤?我有一个 WebAPI Controller ,目前正在使用我的 JSON 对象。我需要获取这些数据并将其移动到一个 View 中,以便我可以将它连接到我的 Web 组件。
我想我是否应该在 Controller 或 View 中遍历我的 JSON 对象感到困惑?我有以下内容:
var model = JsonConvert.DeserializeObject<MyData.RootObject>(Data);
foreach (var record in Data.rows)
{
foreach (var nestedRecord in record.f)
{
List<string> list = new List<string>();
list.Add(nestedRecord.v);
}
}
return View();
此外,我正在遍历此模型,但我无法在 View 中返回模型,因为它超出了范围。
最佳答案
我在这里看到两个流行的选项,具体取决于您可能从反序列化对象访问的信息量。第一,使用 MyData.RootObject
作为您的模型,并在 View 中对其进行迭代。如果您需要访问对象的其他属性,这将为您提供最大的灵 active :
var model = JsonConvert.DeserializeObject<MyData.RootObject>(Data);
return View(model);
在 View 中(这个无序列表标记只是一个示例),您可能有:
@model MyData.RootObject
<ul>
@foreach (var record in Model.rows)
{
foreach (var nestedRecord in record.f)
{
<li>@nestedRecord.v</li>
}
}
</ul>
或者,按照您的计划继续,但将要填充的列表移到 for 循环之外,使用列表作为模型。就在 View 中呈现对象而言,这将是最不灵活的:
var rootObject = JsonConvert.DeserializeObject<MyData.RootObject>(Data);
List<string> list = new List<string>();
foreach (var record in rootObject.rows)
{
foreach (var nestedRecord in record.f)
{
list.Add(nestedRecord.v);
}
}
return View(list);
在这种情况下您的观点(比其他选项更简洁):
@model System.Collections.Generic.List<string>
<ul>
@foreach (var record in Model)
{
<li>@record</li>
}
</ul>
关于c# - 如何使用 C# 将我的模型放入我的 View 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121886/