我希望有任何现成的通用解决方案来转换字符串与POST数据,如:
"id=123&eventName=eventName&site[domain][id]=123"到我的复杂对象
public class ComplObject {
public int id {get;set;}
public string eventName {get;set;}
public siteClass site{get;set;}
}
public class siteClass {
public domainClass domain {get;set;}
}
public class domainClass {
public int id {get;set;}
}允许访问asp.net MVC引用。看起来,我需要独立的formdata绑定器,但我找不到任何工作库/代码来处理它。
发布于 2018-01-26 21:28:52
您需要通过覆盖HttpParameterBinding class来实现自定义的http参数绑定。然后创建一个自定义属性以在您的web API上使用它。
从json内容中读取参数的示例:
CustomAttribute
/// <summary>
/// Define an attribute to define a parameter to be read from json content
/// </summary>
[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Parameter, Inherited = true, AllowMultiple = false)]
public class FromJsonAttribute : ParameterBindingAttribute
{
public override HttpParameterBinding GetBinding(HttpParameterDescriptor parameter)
{
return new JsonParameterBinding(parameter);
}
}ParameterBinding :
/// <summary>
/// Defines a binding for a parameter to be read from the json content
/// </summary>
public class JsonParameterBinding : HttpParameterBinding
{
...Here your deserialization logic
}WepAPi
[Route("Save")]
[HttpPost]
public HttpResponseMessage Save([FromJson] string name,[FromJson] int age,[FromJson] DateTime birthday)
{
...
}https://stackoverflow.com/questions/48457738
复制相似问题