【问题标题】:Send LIST from c# to angular将 LIST 从 c# 发送到 angular
【发布时间】:2019-10-01 08:16:09
【问题描述】:

我有后端 c# api

public async Task<Object> GetTestType()
{
        List <TestType> TestList = _context.TestTypes.ToList();
        foreach (var l in TestTypeList)
        {
            Log.WriteLog("log.txt", "test1 > " + l.var1);
        }
        Log.WriteLog("log.txt", "test2 > "+TestList .ToString());
    return TestList ;
}

在日志中我得到

test1 > testvar1
test1 > testvar2
test1 > testvar3

test2 > System.Collections.Generic.List`1[BackEnd.Entities.TestType]

这里是 TestType 类

public class TestType
{
    public int id{ get; set; }
    public string var1{ get; set; }
    public string var2{ get; set; }
}

我有角度

this.TestService.getTestType().subscribe(
  (res:any)=>
  {
    console.log(res) ; 

    this.RideTypeModelData.rideTypeID = res.rideTypeID;
    console.log('rideTypeID-'+this.RideTypeModelData.rideTypeID) ; 
  },

如果是 console.log(res) 我会得到 ​​p>

[对象对象]

我还用 angular 创建了 TestModel

export class TestTypeModel{
    id: Number;
    typeWebID: String;
    var1: String;
    var2: String;
}

我试图用它来获取对象数据 公共TestTypeModelData:TestTypeModel;

this.TestService.getTestType().subscribe(
  (res:any)=>
  {
    this.TestTypeModelData.id= res.id;
    console.log(this.TestTypeModelData.id) ; 
  },

我得到错误

core.js:15723 ERROR TypeError: Cannot set property 'id' of undefined

如何传输该 List 对象并以角度输出它???

【问题讨论】:

  • this.TestTypeModelData 在您尝试设置他的 id 属性时可能为空。如果是这种情况,您需要先创建一个新的 TestTypeModel : this.TestTypeModelData = new TestTypeModel()
  • 我已经用来自 api 的日志更新了问题。这表明api发送数据
  • 尝试res[0].id 而不是res.id
  • 没有帮助,同样的错误:(

标签: c# angular typescript asp.net-core data-transfer


【解决方案1】:

您的 api 正在返回一个像 TestType 列表一样的集合,但是在您的角度代码中,您正试图将此集合分配给一个 id。

您应该迭代 res 对象,然后设置 id 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多