asp.net – 如何在WebAPI中获取POST数据?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何在WebAPI中获取POST数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我以下面的形式发送一个请求到服务器:
http://localhost:12345/api/controller/par1/par2

该请求正确解析为以下方法

[HttpPost]
public void object Post(string par1,string par2)

但是,我通过请求内容传递额外的数据。如何检索这些数据?

为了举例,让我们说,请求是从以下形式发送的:

<form action="http://localhost:12345/api/controller/par1/par2" method="post">
    <input type="hidden" name="data" value="value" />
    <input type="submit" name="submit" value="Submit" />
</form>

解决方法

answer在这个问题:
How to get Post Values with asp.net webapi

> Autoparse使用参数绑定;注意,动态由JToken组成,因此.Value访问器。

public void Post([FromBody]dynamic value) {
    var x = value.var1.Value; // JToken
}

> Read就像Request.RequestUri.ParseQueryString()[key]

public async Task Post() {        
   dynamic obj = await Request.Content.ReadAsAsync<JObject>();
   var y = obj.var1;
}

>与#2相同,只是不是异步的(?),所以你可以在一个帮助方法中使用它

private T GetPostParam<T>(string key) {
    var p = Request.Content.ReadAsAsync<JObject>();
    return (T)Convert.ChangeType(p.Result[key],typeof(T)); // example conversion,could be null...
}

警告 – 期望媒体类型应用程序/ json为了触发JsonMediaTypeFormatter处理。

猜你在找的asp.Net相关文章