C# 如何在ASP.NETMVC中向视图显示列表对象?

C# 如何在ASP.NETMVC中向视图显示列表对象?,c#,asp.net-mvc,view,model,C#,Asp.net Mvc,View,Model,我很难显示从列表对象模型到视图的值 我尝试使用此代码显示它 @model IEnumerable<MVC.Models.RootObject> @foreach (var item in @Model) { <li>@item.records</li> } 根据我的评论,您希望更改@model行,并可能按照如下方式充实循环 @model MVC.Models.RootObject @foreach (var item in @Model.rec

我很难显示从列表对象模型到视图的值

我尝试使用此代码显示它

@model IEnumerable<MVC.Models.RootObject>

@foreach (var item in @Model)
{
    <li>@item.records</li>
} 

根据我的评论,您希望更改
@model
行,并可能按照如下方式充实循环

@model MVC.Models.RootObject

@foreach (var item in @Model.records)
{
    <li>@item.transferId</li>
    <li>@item.type</li>
    // etc
} 
@model MVC.Models.RootObject
@foreach(@Model.records中的var项)
{
  • @item.transferId
  • @item.type
  • //等 }
    好的,让我们看看错误消息

    视图需要
    RootObject
    IEnumerable
    ,但您只是传入了一个RootObject

    传入字典的模型项的类型为“MVC.Models.RootObject”,但此字典需要“System.Collections.Generic.IEnumerable`1[MVC.Models.RootObject]”类型的模型项。

    我不确定您的API答复了什么,但您可能需要将对象反序列化为
    RootObject
    IEnumerable
    ,而不是单个对象。你试过调试这些线路吗

    var response=client.sendaync(httpRequestMessage).Result;
    RootObject obj=JsonConvert.DeserializeObject(wait response.Content.ReadAsStringAsync());
    返回视图(obj);
    
    如果情况并非如此,并且您希望在以后进行多个API调用以构建列表

    像这样的东西应该有用,但我建议你遵循上面的内容,因为从你发布的剃须刀来看,这似乎更像是你在寻找的东西

    var response=client.sendaync(httpRequestMessage).Result;
    RootObject obj=JsonConvert.DeserializeObject(等待
    response.Content.ReadAsStringAsync());
    IEnumerable list=new list(){obj};
    返回视图(列表);
    
    视图文件中的
    @model
    行是什么?错误表明它是
    IEnumerable
    ,但您正在传递单个
    RootObject
    。在使用您的代码建议后,我遇到了此错误。”“IEnumerable”不包含“records”的定义,并且不能使用接受“IEnumerable”类型的第一个参数的扩展方法“records”found@ikey这是因为您没有给
    记录
    任何值,因此它是空的,但在调试程序后,我看到一个值被传递给
    记录
    。也许这个代码就是问题所在
    IEnumerable
    @ikey这听起来好像您没有正确更改
    foreach
    。您是否已编辑它以循环查看
    记录
    而不是模型?/将视图模型从列表更改为单个模型我在回答中添加了
    @model
    行,它应该是
    RootObject
    而不是它们的集合。我的api返回的是一个“记录”对象列表,就像我的“记录”模型中显示的那样。您的第二个建议对我很有用,但是可以通过多次api调用来构建列表吗?它不会使页面变慢吗?@ikey它会使页面变慢。您需要调用一个端点,该端点返回
    记录
    对象的列表,然后调用
    反序列化对象
    一个
    IEnumerable
    public class RootObject
        {
            public List<Record> records { get; set; }
            public int totalRecords { get; set; }
        }
    
     public class Record
        {
            public string transferId { get; set; }
            public string type { get; set; }
            public DateTime createdAt { get; set; }
            public string dateUpdated { get; set; }
            public string state { get; set; }
            public string senderTransferId { get; set; }
        }
    
    @model MVC.Models.RootObject
    
    @foreach (var item in @Model.records)
    {
        <li>@item.transferId</li>
        <li>@item.type</li>
        // etc
    }