2014-02-24 70 views
1

什么是等效Request.CreateResponse的()

var newOrder = new OrderViewModel() 
{ 

    Id = orderDetails.Id, 
    Name = orderDetails.Service.Name, 
    ..... 
}; 

Request.CreateResponse(HttpStatusCode.OK, newOrder);

等效在这种格式:

HttpResponseMessage response = new HttpResponseMessage(); 
response.StatusCode = HttpStatusCode.OK; 
response.ReasonPhrase = "successfully created blablabla"; 

Request.CreateResponse()我可以通过一个对象。我该怎么做与HttpResponseMessage

希望能够传递消息(如ReasonPhrase),但无法通过Request.CreateResponse()执行此操作。或者我错过了一些东西。

回答

2

要在对象作为应答内容传递可以构造ObjectContent<T>

response.Content = new ObjectContent<OrderViewModel>(newOrder, 
             new JsonMediaTypeFormatter()) 

ObjectContent其他构造:

http://msdn.microsoft.com/en-us/library/hh835040(v=vs.118).aspx

+0

顺便说乔安娜,莫非方法'Request.CreateResponse( )'也支持像response.ReasonPhrase这样的自定义消息?看着文档告诉我没有。也许我错过了一些东西。 – Quoter

+0

@Quoter - 不是我所知道的。你需要创建自己的扩展。 –

+0

好的,谢谢! – Quoter