尝试创建一个用作数据模型的类,然后发送一个属性与数据模型类的属性匹配的JSON对象。(注意:我已经对此进行了测试,并且可以与我今天下载的最新MVC 4 RC 2012一起使用)。
public HttpResponseMessage Post(ValueModel model)
{
return Request.CreateResponse<string>(HttpStatusCode.OK, "Value Recieved: " + model.Value);
}
public class ValueModel
{
public string Value { get; set; }
}
下面的JSON对象在HTTP-POST正文中发送,内容类型为application / json
{ "value": "In MVC4 Beta you could map to simple types like string, but testing with RC 2012 I have only been able to map to DataModels and only JSON (application/json) and url-encoded (application/x-www-form-urlencoded body formats have worked. XML is not working for some reason" }
我相信您必须创建数据模型类的原因是因为假定简单值来自url参数,而单个复杂值则假定来自正文。它们确实具有[FromBody]
和[FromUrl]
属性,但是[FromBody] string value
对我来说仍然无法使用。似乎他们仍在解决许多错误,因此我相信将来会有所改变。
编辑:
获得XML在正文中工作。默认的XML序列化器已更改为DataContractSerializer,而不是XmlSerializer。将以下行放入我的Global.asax文件中可解决此问题(参考)
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;