当前位置: 首页 > 面试题库 >

使用Web API返回匿名类型

赵飞语
2023-03-14
问题内容

使用MVC时,返回即席Json很容易。

return Json(new { Message = "Hello"});

我正在使用新的Web API寻找此功能

public HttpResponseMessage<object> Test()
{    
   return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}

由于DataContractJsonSerializer无法处理匿名类型,因此引发了异常。

我有这个替换此JsonNetFormatter基于
Json.Net 。如果我使用这行得通

 public object Test()
 {
    return new { Message = "Hello" };
 }

但是如果我不返回HttpResponseMessage,我看不到使用Web API的意义,那么最好还是坚持使用香草MVC。如果我尝试使用:

public HttpResponseMessage<object> Test()
{
   return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}

它序列化整个HttpResponseMessage

谁能指导我找到一种解决方案,在其中可以返回匿名类型HttpResponseMessage


问题答案:

这在Beta版本中不起作用,但在最新版本(从http://aspnetwebstack.codeplex.com构建)中起作用,因此,这很可能是RC的方式。你可以做

public HttpResponseMessage Get()
{
    return this.Request.CreateResponse(
        HttpStatusCode.OK,
        new { Message = "Hello", Value = 123 });
}


 类似资料:
  • 我有一个匿名函数,如下所示: 我想指定cb必须返回一个布尔值,但我是一个打字稿新手,不知道我是否可以(或者即使我这样做或不这样做会对解析器产生影响)。 我该怎么做?

  • 问题内容: 如何使Entity Framework SqlQuery返回匿名类型。 现在,我运行RAW查询。该查询联接了两个表,我想返回联接表的结果。 如果我将其与某种类型一起使用,则只会看到相同类型的表的结果。 我试过了; 使用与结果的对象匹配的预定义类,但所有字段均为null。 将实体框架6与MySQL结合使用。 问题答案: 我在这里忙个不停,将尝试解决您的根本问题,而不是直接回答您的问题。

  • 问题内容: 我正在构建一个客户端脚本繁重的ASP.NET MVC应用程序,它将使用JSON和jQuery来操作DOM。 我的理解是 Web API Controller 和 MVC Controller 都可以返回JSON。 在我的情况下,应该使用 Web API控制器 还是 MVC控制器 ? 问题答案: 可以在任何ASP.NET应用程序中创建并托管Web API控制器,而不仅仅是MVC应用程序。

  • 根据我的场景,我应该使用Web API控制器还是MVC控制器?

  • 匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类。其语法形式如下: 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。使用匿名类可使代码更加简洁、紧凑,模块化程度更高。 匿名类有两种实现方式: 继承一个类,重写其方法。 实现一个接口(可以是多个),实现其方法。 下面通过代码来说明。 程序的输出结果如下: 从输出结果可以看出,匿名内部类有

  • 问题内容: 我在节点服务器上运行以下psql: 返回的结果包括每个结果对象之前的字符串: 我在这里想念什么?我以前从未见过这个匿名字符串,并且希望摆脱它。 问题答案: 据我所知,您不能摆脱它,至少不能站在您这一边。 参见:https : //github.com/brianc/node- postgres/issues/1062 当使用匿名类创建对象时,它只是向控制台报告的Node.js 6新功能