对于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
?
答案 0 :(得分:0)
您可以使用form-urlencoded的内置FormUrlEncodedMediaTypeFormatter实现。它应该适用于任何POCO类(您的数据合同应该也可以,但它会忽略DataContract属性),
确保您在网络API中配置了该媒体类型格式化程序。
答案 1 :(得分:0)
以下是有关设置DataContractFormat的MSDN帖子:http://blogs.msdn.com/b/endpoint/archive/2011/05/15/using-datacontracts-with-wcf-web-api.aspx
MediaTypeFormatterCollection类包含FormUrlEncodedFormatter。您可以尝试上面的帖子来设置DataContractSerializer。
答案 2 :(得分:0)
这是一个古老的帖子,但也许这可以帮助其他人。以下是使用ModelBinder and AliasAttribute 执行此类代码的解决方案:
[ModelBinder(typeof(AliasBinder))]
public class MyModel
{
[Alias("state")]
public string Status { get; set; }
}
希望这会有所帮助:)