7

对于application/json或者application/xml我可以DataContract用于自定义属性名称绑定:

[HttpPost]
public string Method([FromBody]Model request)
{
}

[DataContract]
public class Model
{
    [DataMember(Name="custom_name")]
    public string CustomName { get; set; }
}

我该如何使用DataContract或其他用途application/x-www-form-urlencoded

4

3 回答 3

0

这是关于设置 DataContractFormat 的 MSDN 帖子:http: //blogs.msdn.com/b/endpoint/archive/2011/05/15/using-datacontracts-with-wcf-web-api.aspx

MediaTypeFormatterCollection类包含FormUrlEncodedFormatter 您可以尝试上面的帖子来设置您的 DataContractSerializer。

于 2013-04-12T14:20:29.683 回答
0

有一个用于 form-urlencoded 的内置 FormUrlEncodedMediaTypeFormatter 实现,您可以使用它。它应该适用于任何 POCO 类(您的数据合同也应该适用,但它会忽略 DataContract 属性),

http://msdn.microsoft.com/en-us/library/system.net.http.formatting.formurlencodedmediatypeformatter(v=vs.108).aspx

确保您在 Web api 中配置了该媒体类型格式化程序。

于 2013-04-12T13:36:59.597 回答
0

这是一个旧帖子,但也许这可以帮助其他人。这是使用ModelBinder 和 AliasAttribute执行此类代码的解决方案:

[ModelBinder(typeof(AliasBinder))]
public class MyModel
{
    [Alias("state")]
    public string Status { get; set; }
}

希望这可以帮助 :)

于 2017-02-13T12:07:48.890 回答