此方法返回arr
和bool
-
string
在我的控制器中,我这样称呼它-
public (bool active, string name) Report()
{
}
我得到的答复是这样的-
public IActionResult Credit([FromBody] Data data)
{
return Ok(Report())
}
我该如何获得此回复-
{
"item1": false,
"item2": "Your name"
}
答案 0 :(得分:7)
快速简便的方法是返回匿名类型,并从返回的元组中获取值
public IActionResult Credit([FromBody] Data data)
{
//...
var report = Report();
return Ok(new
{
Active = report.active,
Name = report.name
})
}
理想情况下,您应该返回一个可以从API返回的强类型模型
public class ReportModel
{
public string Name { get;set; }
public bool Active { get;set; }
}
并相应地更新
public ReportModel Report()
{
//...
}
public IActionResult Credit([FromBody] Data data)
{
//...
var report = Report();
return Ok(report);
}
答案 1 :(得分:1)
值元组(用于Report()
方法的返回值)只是ValueTuple<T,T,...,T>
对象周围的语法糖。因此,不动产名称不是active
和name
,而是item1
和item2
。
因此您的方法将转换为如下形式:
[return: TupleElementNames(new string[] {
"active",
"name"
})]
public ValueTuple<bool, string> Report()
您如何解决此问题?您应该创建一个反映您想要返回的内容的模型:
public class ActiveName
{
public string Name { get;set;}
public bool Active {get;set;}
}
,然后更改您的方法以返回此ActiveName
类型。
另一种方法是将匿名类型返回为动态类型,但我建议您不要使用这种方法,因为使用dynamic
会导致发生错误时发生运行时错误。如果您只是使用它从API方法中返回,那么可能就可以了。
public dynamic Report()
{
return new { name = "abc", active = true };
}
答案 2 :(得分:0)
SettingKeys