之前,我有这个代码返回一个任意的json对象只有一个id属性。 如何将其转换为WebApi的新RC版本,现在不支持HttpResponseMessage并且它现在使用Newtonsofts JSON.NET?如何从Asp.net WebApi RC中返回任意的json对象?
public HttpResponseMessage<JsonValue> Post(MyModel model)
{
var id = _theService.AddEntity(model);
dynamic okResponse = new JsonObject();
okResponse["id"] = id;
return new CreateResponse<JsonValue>(okResponse);
}
而且......
public class CreateResponse<T> : ResponseBase<T>
{
public CreateResponse()
: base(HttpStatusCode.Created)
{
}
public CreateResponse(T resource)
: base(resource, HttpStatusCode.Created)
{
}
}
public abstract class ResponseBase<T> : HttpResponseMessage<T>
{
protected ResponseBase(HttpStatusCode httpStatusCode)
: base(httpStatusCode)
{
}
protected ResponseBase(T resource, HttpStatusCode httpStatusCode)
: base(resource, httpStatusCode)
{
if (resource is IApiResource)
{
var apiResource = resource as IApiResource;
var resourceLocation = new ResourceLocation();
apiResource.SetLocation(resourceLocation);
Headers.Location = resourceLocation.Location;
}
}
}
我不熟悉的RC版的WebAPI的,但是您能不能告诉你试用这个新版本,为什么它不工作? – Tisho
HttpResponseMessage不再支持,而是创建类型T的响应并将内容传递到构造函数中,而不是使用请求的扩展方法创建响应。此外,使用NetwonSoft的JSON.Net而不是System.Json类型。 –
jaffa