如何将 FormData 读入 Web API?
How to read FormData into Web API?
我向您寻求 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 不幸的是,模型活页夹仅适用于原始输入。
我最近做了一个类似的场景,在你的控制器上,在你的控制器中使用这个方法签名class
[HttpPost]
[Route("search")]
public IHttpActionResult Search(System.Net.Http.Formatting.FormDataCollection search)
然后在 FormDataCollection 上创建一个扩展方法 class 以将此 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
,然后在 class 中创建一个构造函数,如:
public SearchQuery(NameValueCollection formdata) : base(formdata)
{
FirstName = formdata["FirstName"];
...
}
我向您寻求 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 不幸的是,模型活页夹仅适用于原始输入。
我最近做了一个类似的场景,在你的控制器上,在你的控制器中使用这个方法签名class
[HttpPost]
[Route("search")]
public IHttpActionResult Search(System.Net.Http.Formatting.FormDataCollection search)
然后在 FormDataCollection 上创建一个扩展方法 class 以将此 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
,然后在 class 中创建一个构造函数,如:
public SearchQuery(NameValueCollection formdata) : base(formdata)
{
FirstName = formdata["FirstName"];
...
}