我正在以以下形式向服务器发送请求:
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>
从这个问题的答案中:如何使用asp.net webapi获取Json Post值
使用参数绑定进行自动解析;请注意,dynamic
是由组成的JToken
,因此是.Value
访问器。
public void Post([FromBody]dynamic value) {
var x = value.var1.Value; // JToken
}
阅读就像 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...
}
警告-希望使用媒体类型application/json
来触发JsonMediaTypeFormatter
处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句