我正在请求执行一个 asp.net webapi Post 方法,但我无法获得请求变量。
请求
jQuery.ajax({ url: sURL, type: 'POST', data: {var1:"mytext"}, async: false, dataType: 'json', contentType: 'application/x-www-form-urlencoded; charset=UTF-8' })
.done(function (data) {
...
});
WEB API Fnx
[AcceptVerbs("POST")]
[ActionName("myActionName")]
public void DoSomeStuff([FromBody]dynamic value)
{
//first way
var x = value.var1;
//Second way
var y = Request("var1");
}
我无法以两种方式获取 var1 内容...(除非我为此创建了一个类)
我该怎么做?
最佳答案
第一种方式:
public void Post([FromBody]dynamic value)
{
var x = value.var1.Value; // JToken
}
请注意
value.Property
实际上返回一个 JToken
例如,要获得它的值(value),您需要调用 value.Property.Value
.第二种方式:
public async Task Post()
{
dynamic obj = await Request.Content.ReadAsAsync<JObject>();
var y = obj.var1;
}
上述两项工作都使用 Fiddler。如果第一个选项不适合您,请尝试将内容类型设置为
application/json
确保JsonMediaTypeFormatter
用于反序列化内容。
关于asp.net - 如何使用asp.net webapi获取Json Post值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120971/