我的代码返回一个对象:
public async Task<IHttpActionResult> GetAnswers(int userTestQuestionId)
{
return Ok(new AnswerToClientDTO
{
AnswerGridCorrect = answerGridCorrect,
Result = result,
UpdateRowCount = updateRowCount
});
以下是AnswerToClientDTO的代码,该代码仅在我的应用程序中的一个位置使用:
public class AnswerToClientDTO
{
public string AnswerGridCorrect { get; set; }
public int UpdateRowCount { get; set; }
public string Result { get; set; }
}
我是否可以返回一个匿名对象,我不必从ASP.NET WEb API方法声明一个类?
答案 0 :(得分:9)
在WebAPI中,您可以将任何对象传递给Ok()
,该对象可以由配置的格式化程序格式化,因此这应该是有效的:
public IHttpActionResult GetStuff()
{
return Ok( new {
AnswerGridCorrect = answerGridCorrect,
Result = result,
UpdateRowCount = updateRowCount
} );
}
答案 1 :(得分:1)
从技术上讲,是的,您可以使用object
或dynamic
。据说这不是一个好主意。此外,如果您正在使用此类WebAPI(例如通过WCF的REST或SOAP服务),这将是一个坏主意,因为从HTTP调用/响应的序列化不会知道正确的格式用于以JSON或XML格式发送数据。