我寻求你的Web API扩展的帮助,它可以支持表单数据的模型绑定,FormDataAttribute
(假设),或社区关于如何实现它的指导。
public class NammaApiController : ApiController
{
public IHttpActionResult PostFDFromBody([FromBody]FD reqBody)
{
return Ok();
}
public IHttpActionResult PostFDFromFormData([FromFormData]FD reqBody)
{
return Ok();
}
}
遗憾的是,默认Web API模型绑定器仅适用于原始输入。
答案 0 :(得分:1)
我最近在您的控制器上做了类似的场景,在控制器类中使用此方法签名
[HttpPost]
[Route("search")]
public IHttpActionResult Search(System.Net.Http.Formatting.FormDataCollection search)
然后在FormDataCollection类上创建一个扩展方法,将此FormDataCollection转换为NameValueCollection,以后更容易。
public static NameValueCollection Convert(this FormDataCollection formDataCollection)
{
IEnumerator<KeyValuePair<string, string>> pairs = formDataCollection.GetEnumerator();
NameValueCollection collection = new NameValueCollection();
while (pairs.MoveNext())
{
KeyValuePair<string, string> pair = pairs.Current;
collection.Add(pair.Key, pair.Value);
}
return collection;
}
然后你有一个NameValueCollection
,然后在一个类中创建一个构造函数,如:
public SearchQuery(NameValueCollection formdata) : base(formdata)
{
FirstName = formdata["FirstName"];
...
}