【发布时间】:2020-09-12 14:17:03
【问题描述】:
我的控制器在 Blazor 的服务器端 WebApi 中的方法返回一个 html/text 响应而不是 application/json 这导致
The provided ContentType is not supported; the supported types are 'application/json' and the structured syntax suffix 'application/+json'. 错误。手动设置对 application/json 响应的内容类型的最佳方法是什么?
我的控制器带有 Get 方法
[Route("api/[controller]")]
[ApiController]
public class DeveloperController : ControllerBase
{
private readonly ApplicationDBContext _context;
public DeveloperController(ApplicationDBContext context)
{
_context = context;
}
[HttpGet]
public async Task<ActionResult> Get()
{
var devs = await _context.Developers.ToListAsync();
return Ok(devs);
}
以及来自客户端页面的调用
developers = await client.GetFromJsonAsync<Developer[]>("api/developer");
感谢您的所有回答,祝您编码愉快!
【问题讨论】:
-
首先检查api是否由于某种原因实际上返回了一个json而不是一个错误页面?
-
@Umair 根据 chrome dev 控制台,我的 api 方法返回 Status Code:200 所以我在这里没有看到问题,但我真的不知道这是否是你所要求的。我对 WebApi 概念很陌生,所以我可能会迷路
-
您在交付 HTML 页面时获得 200。
-
@HenkHolterman 请检查我在问题中的编辑
-
现在从浏览器栏中的屏幕截图中删除该网址,看看会发生什么。你应该看到一些 json。
标签: blazor webapi blazor-webassembly blazor-hosted