我有一个生成json的后端系统。是否可以根据要求通过控制器传递数据并正确设置mimetype?到目前为止,我尝试的所有操作都尝试重新序列化数据,从而转义json字符串。
我尝试将[Produces("application/json")]
添加到控制器。设置响应类型:Response.ContentType = MediaTypeNames.Application.Json;
,返回一个JsonResult对象:return new JsonResult(jsonString);
后端没有JsonSerializer,我可以将其添加到JsonSerializerOptions中,我只需要此特定控制器即可。
简而言之:如果我只是将json字符串作为IActionResult返回而没有做任何事情,则控制器将工作,除了content-type未被设置为application / json。有什么方法可以做到而又不影响其他任何事情吗?
我觉得这不应该是一个特殊的用例,但我似乎找不到答案。
答案 0 :(得分:1)
我也有同样的需求。我通过让我的操作方法像这样返回ActionResult
来解决了这个问题:
public ActionResult SomeActionMethod(){
string json = GetJsonFromBackenend();
return new ContentResult {
Content = json,
ContentType = "application/json; charset=utf-8",
StatusCode = StatusCodes.Status200OK
};
}
如果您愿意使用@Jurgy,则可以将返回类型声明为IActionResult
。