通过控制器传递 json
Passing json through a controller
我有这个生成 json 的后端系统。是否可以根据请求通过控制器传递该数据并正确设置 mimetype?到目前为止,我尝试过的所有尝试都试图重新序列化数据,从而转义 json 字符串。
我试过将 [Produces("application/json")]
添加到控制器。设置响应类型:Response.ContentType = MediaTypeNames.Application.Json;
,returning 一个 JsonResult 对象:return new JsonResult(jsonString);
后端没有我可以添加到 JsonSerializerOptions 的 JsonSerializer,我只需要这个特定的控制器。
简而言之:如果我只是 return 将 json 字符串作为 IActionResult 而不执行任何操作,除了内容类型未设置为 application/json.有什么办法可以在不影响其他任何事情的情况下做到这一点吗?
我觉得这不应该是一个特殊的用例,但我似乎找不到答案。
我也有同样的需求。我通过让我的操作方法 return 和 ActionResult
像这样解决了它:
public ActionResult SomeActionMethod(){
string json = GetJsonFromBackenend();
return new ContentResult {
Content = json,
ContentType = "application/json; charset=utf-8",
StatusCode = StatusCodes.Status200OK
};
}
如果您喜欢 @Jurgy 提到的,您可以将 return 类型声明为 IActionResult
。
我有这个生成 json 的后端系统。是否可以根据请求通过控制器传递该数据并正确设置 mimetype?到目前为止,我尝试过的所有尝试都试图重新序列化数据,从而转义 json 字符串。
我试过将 [Produces("application/json")]
添加到控制器。设置响应类型:Response.ContentType = MediaTypeNames.Application.Json;
,returning 一个 JsonResult 对象:return new JsonResult(jsonString);
后端没有我可以添加到 JsonSerializerOptions 的 JsonSerializer,我只需要这个特定的控制器。
简而言之:如果我只是 return 将 json 字符串作为 IActionResult 而不执行任何操作,除了内容类型未设置为 application/json.有什么办法可以在不影响其他任何事情的情况下做到这一点吗?
我觉得这不应该是一个特殊的用例,但我似乎找不到答案。
我也有同样的需求。我通过让我的操作方法 return 和 ActionResult
像这样解决了它:
public ActionResult SomeActionMethod(){
string json = GetJsonFromBackenend();
return new ContentResult {
Content = json,
ContentType = "application/json; charset=utf-8",
StatusCode = StatusCodes.Status200OK
};
}
如果您喜欢 @Jurgy 提到的,您可以将 return 类型声明为 IActionResult
。