我正在使用 IActionFilter.OnActionExecuted (ASP.NET Core 3.1) 设置带有媒体类型和字符集的 context.HttpContext.Response.ContentType,例如 application/json;字符集=utf-8。
但是,在设置 ContentType 属性时,会返回响应状态代码 406 Not allowed。
我试过了:
- 设置请求的 Accept headers (Accept: application/json; Accept-Charset: utf-8);
- services.AddMvc(options => options.RespectBrowserAcceptHeader = false);
- services.AddMvc(options => options.ReturnHttpNotAcceptable = true);
加上上述的组合,但 406 不断回来。
然后我尝试设置没有字符集的响应内容类型,这有效!
这可能是有道理的 Accept=application/json != Content-Type=application/json; charset=utf-8,但是我现在找不到设置字符集的方法。
有什么想法吗?
干杯,
彼得