c# - 如何使用 C# 将我的模型放入我的 View 中?

标签 c# json asp.net-mvc razor

我已将我的 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/

相关文章:

c# - 使 c# winforms 应用程序可用作非托管 mfc 应用程序的 dll

java - 替换由 JSONArray 组成的 JSON 对象中的所有键

java - PrettyPrint JSON 与 jackson

asp.net-mvc - 使用下拉列表过滤 MVC 中的结果

c# - 通过 JSON 标签读取 JSON

C# lambda else 语句

php - Mysql从嵌套查询中获取json

c# - Func<int,string> 从 Url.Action 返回

asp.net-mvc - PartialView 是否应该使用指定的布局?

c# - 在 .NET Core 中使用 FluentValidation 和依赖注入(inject)