【发布时间】:2017-06-01 23:05:25
【问题描述】:
我制作了一个 .NET Core Web API 项目来测试它。
我的问题是,当我请求位于“/api/cars/123”的端点时,API 返回一个空的 JSON 对象。无论我放入什么样的对象都会发生这种情况,除非它是任何原始数据类型或其数组。响应总是:
{}
应用程序的配置是完全默认的,在全新的 Visual Studio 2017 安装中。
我有以下课程:
Car.cs
namespace Ex6.Entities
{
public class Car
{
private int Id { get; set; }
private string Make { get; set; }
private string Model { get; set; }
public Car(int Id, string Make, string Model)
{
this.Id = Id;
this.Make = Make;
this.Model = Model;
}
}
}
CarsController.cs:
using Microsoft.AspNetCore.Mvc;
using Ex6.Entities;
namespace Ex6.Controllers
{
[Route("api/[controller]")]
public class CarsController : Controller
{
[HttpGet("{id}")]
public JsonResult GetCar(int id)
{
return Json(new Car(1, "Toyota", "Aygo" ));
}
}
}
我错过了什么吗?
【问题讨论】:
-
是的,再次更新问题。不过没关系:S
-
是的,如果我在返回之前尝试将 Car 对象映射到变量,我可以在调试器中看到它的构造正确。 :)
-
现在添加自动生成的文件
-
我通过 API 访问它,例如通过向“/api/cars/123”发送 GET 请求。
-
我需要一个 JSON 序列化器,还是 ASP.NET 核心会自动处理它?