【发布时间】:2019-12-27 16:34:49
【问题描述】:
免责声明:我刚刚开始学习 C#,并且正在尝试构建一个向 SQL 数据库发出请求的 ASP.NET 核心 Web api。两者现在都托管在 Azure 上...
...我可以通过 Postman 成功发出请求,但是在调用 Azure 上托管的 api 时无法显示可读数据。
在控制器中
[Route("api/[controller]")]
[ApiController]
public class TenantsController : ControllerBase
{
private readonly TenantContext _context;
public TenantsController(TenantContext context) => _context = context;
//GET: /api/tenants
[HttpGet]
public ActionResult<IEnumerable<Tenant>> GetTenants()
{
return _context.TenantDetails;
}
在模型中
namespace TenantsApi.Models
{
public class Tenant
{
public int Id { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public double Rent { get; set; }
public string Address { get; set; }
}
}
数据库上下文
using Microsoft.EntityFrameworkCore;
namespace TenantsApi.Models
{
public class TenantContext : DbContext
{
public TenantContext(DbContextOptions<TenantContext> options) : base(options)
{
}
public DbSet<Tenant> TenantDetails { get; set; }
}
}
预期结果应该是这样的:
[{"id": 1,
"Title": "Mr",
"FirstName":"John",
"Surname":"Smith",
"Email":"John@aol.com",
"Rent":500.00,
"Address":"1 Random Place, London, L1 1AA"}]
实际结果:
[
错误消息:“SyntaxError: JSON.parse: unexpected end of data at line 1 column 2 of the JSON data”只能在 Firefox 上查看
Firefox 中的标题告诉我:
内容编码 gzip 内容类型应用程序/json;字符集=utf-8 日期 2019 年 8 月 22 日星期四 10:23:25 GMT 服务器 Microsoft-IIS/10.0 传输编码分块 改变接受编码 X-Powered-By ASP.NET
【问题讨论】:
-
在你的 GetTenant 方法中试试这个:
return Ok(_context.TenantDetails) -
请问我可以询问从哪个命名空间“OK”获取吗?
-
它来自您的
TenantsController继承的ControllerBase类。它的类型是:[NonAction]public virtual OkResult Ok(); -
你搞定了吗?
-
不幸的是我没有,抱歉,我对 C# 很陌生,是否需要使用 'using' 来添加命名空间?
标签: c# json syntax-error azure-sql-database asp.net-core-webapi