为什么缺少任何MVC内容格式化程序(例如JSON或XML)会导致我的响应内容类型为空?

时间:2019-06-13 02:15:38

标签: asp.net-core asp.net-core-mvc content-type

  

警告:Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector 1         找不到内容类型“”的输出格式化程序以编写响应。

This blog post显示了当您不使用任何格式化程序时会发生什么,但是我遇到类似的错误,我认为我需要对解决该问题的方法有更好的了解。

例如,如果您将dotnet new mvc用于AddMvc()中的AddMvcCore()更改为Startup.cs,则会在运行时看到错误。

这是预期的,因为没有格式化程序。 我不明白的是,我可以在请求期间同时提供Content-Type和application/json的Accept标头,但仍然会收到“找不到内容类型”的输出格式化程序”。这是我的主要问题,为什么我的内容类型会消失?

我不想弄乱这里的水,但是我正在使用ProblemDetails middleware来捕获异常,然后用500响应,如果我的用户要求输入text / csv,则我收到406 Not Acceptable,如果他们要求对于application / json,他们会收到500 Internal Server Error。我认为这是因为MVC无论出于何种原因都无法响应CSV,即使我确实有用于CSV输入和输出的格式化程序,也以某种方式擦除了内容类型。因此,我的问题。

0 个答案:

没有答案