从Azure函数返回OkObjectResult时,如下所示:
[Function("ReturnFoo")]
public async Task<IActionResult> ReturnFoo([HttpTrigger(AuthorizationLevel.Anonymous, "post")]
HttpRequestData req,
FunctionContext executionContext)
{
object o = new
{
Foo = "bar"
};
return new OkObjectResult(o)
}
它向客户端返回以下JSON:
{
"Value": {
"Foo": "bar"
},
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}
我怎样才能返回没有这些额外东西的json呢?我只想:
{
"Value": {
"Foo": "bar"
}
}
或者,更好的是:
{
"Foo": "bar"
}
我知道我可以将Azure函数的返回类型更改为“object”,但我确实希望返回IActionResult,以便可以轻松地从此同一函数返回其他消息。
我已经浪费了很多时间来尝试让它与自定义JSonFormatters一起工作,并尝试使用JsonResult(它也有臃肿的属性),但它不起作用,我怀疑我错过了一些非常明显和简单的东西。感谢支持。
1条答案
按热度按时间zkure5ic1#
对于具有独立函数的.NET 5+,您应该使用
HttpResponseData
,这是一种过程性更强的数据返回方式。https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide#bindings希望API在未来会有所改善。
有关类似问题,请参见:Using IActionResult with Azure Functions in .NET 5?