通过控制器传递json

问题描述

我有一个生成json的后端系统。是否可以根据要求通过控制器传递数据并正确设置mimetype?到目前为止,我尝试的所有操作都尝试重新序列化数据,从而转义json字符串。

我尝试将[Produces("application/json")]添加到控制器。设置响应类型:Response.ContentType = MediaTypeNames.Application.Json;,返回一个JsonResult对象:return new JsonResult(jsonString);

后端没有JsonSerializer,我可以将其添加到JsonSerializerOptions中,我只需要此特定控制器即可。

简而言之:如果我只是将json字符串作为IActionResult返回而没有做任何事情,则控制器将工作,除了content-type未被设置为application / json。有什么方法可以做到而又不影响其他任何事情吗?

我觉得这不应该是一个特殊的用例,但我似乎找不到答案。

解决方法

我也有同样的需求。我通过让我的操作方法像这样返回ActionResult来解决了这个问题:

public ActionResult SomeActionMethod(){

  string json = GetJsonFromBackenend();

   return new ContentResult {
                Content = json,ContentType = "application/json; charset=utf-8",StatusCode = StatusCodes.Status200OK
            };

}

如果您愿意使用@Jurgy,则可以将返回类型声明为IActionResult