为了使模型绑定器正确绑定ASP.Net Core中HTTP请求的正文部分,您需要使用[FromBody]
属性。
public JsonResult PostContent([FromBody] Content content)
{
......
}
如果您的媒体类型为application/json
,则效果很好。但是,如果您想在application/vnd+mycompany+json
标头中使用特定于供应商(例如Accept
)的媒体类型,那么如果我在HTTP POST中传递该媒体类型,我将获得415 Unsupported Media Type
。
所以我的问题是你如何在ASP.Net Core中支持特定于供应商的媒体类型?
答案 0 :(得分:0)
这就是我做到的。
在Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IApiInfoService, ApiInfoService>();
services.AddTransient<IApiVersion, ApiVersion>();
services.AddTransient<IContentService, ContentService>();
services.AddTransient<IIdGenerator, GuidIdGenerator>();
// Add framework services.
services.AddMvc(
mvcConfig => {
mvcConfig.InputFormatters.OfType<JsonInputFormatter>().First().SupportedMediaTypes.Add(
MediaTypeHeaderValue.Parse(ContentTypes.VENDOR_MIME_TYPE)
);
}
);
}