Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将对象从WebAPI CORE 2.0传递到Angular 7?_Angular_Asp.net Core Webapi - Fatal编程技术网

如何将对象从WebAPI CORE 2.0传递到Angular 7?

如何将对象从WebAPI CORE 2.0传递到Angular 7?,angular,asp.net-core-webapi,Angular,Asp.net Core Webapi,如何将对象从WebAPI CORE 2.0传递到Angular 7? 请给我举个例子。 我在Angular 7中得到object=null,不明白为什么 Web Api控制器 [HttpGet] [Produces("application/json")] [Route("ListArtists")] public JsonResult ListArtists() { var artists = _context.Artists.ToList(); return Json(new

如何将对象从WebAPI CORE 2.0传递到Angular 7? 请给我举个例子。 我在Angular 7中得到object=null,不明白为什么

Web Api控制器

[HttpGet]
[Produces("application/json")]
[Route("ListArtists")]
public JsonResult ListArtists()
{
    var artists = _context.Artists.ToList();
    return Json(new { results = artists });
}
POCO类

public class Artist
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id
    {
        get; set;
    }
    public FakeData fake { get; set; }
}
public class FakeData
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id { get; set; }
    public string name { get; set; }
}
export class Artist {
  id: number;
  fake: FakeData;
}
export class FakeData {
  id: number;
  name: string;
}
角度模型

public class Artist
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id
    {
        get; set;
    }
    public FakeData fake { get; set; }
}
public class FakeData
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id { get; set; }
    public string name { get; set; }
}
export class Artist {
  id: number;
  fake: FakeData;
}
export class FakeData {
  id: number;
  name: string;
}
使用observable获取角度数据

getArtistsList(): Observable<Artist[]> { 
  return this.http.get<Artist[]>(this.myAppUrl + 'api/ArtistsLibrary/ListArtists'); 
} 

您可以在webapi控制器中创建一个方法,在序列化为json格式后传递对象。 在angular中,您可以使用angular服务调用该路由来获取json。json可以以angular格式映射到所需的javascript对象中

[HttpGet]
[Produces("application/json")]
[Route("ListArtists")]
public IActionResult ListArtists()
{
    var artists = _context.Artists.ToList();
    return Ok(artists);
}
通过这种方式,您可以将C#对象从asp.net内核传递到Java中的javascript对象

[HttpGet]
[Produces("application/json")]
[Route("ListArtists")]
public IActionResult ListArtists()
{
    var artists = _context.Artists.ToList();
    return Ok(artists);
}

尝试检查url端点是否为您提供json数据。这是一个解析问题。

请在此添加相关代码,可能是我所做的重复(我附上了我的代码)。但是在Angular 7中得到object=null。我已经改变了我的答案。尝试从浏览器或邮递员处调用url。如果它给出数据,请检查它给出的格式。由于您正在放置
艺术家的数组
,您的json结果应该包含在
[]
中。我试过了。IActionResult和JsonResult都正确,我对webapi没有问题。邮递员对IActionResult和JsonResult都正确。Angular返回object Fakedata=null的问题。您是如何订阅的?