在我的
中 public class ValuesController : ApiController
我有一个Post方法:
public void Post([FromBody]string value)
{
string a = "asdsad";
}
我创建了一个带有按钮的小HTML,当我按下它时,我使用$.ajax
使用以下方法调用Post
方法:
function myfunc()
{
$.ajax({
contentType: 'application/json',
data: '{"value":"on"}',
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: 'http://localhost:49558/api/values',
});
}
问题是Post
string value - null
方法
如果这种方法有问题:
使用ajax通过post方法发送数据的最佳方法是什么?
答案 0 :(得分:1)
尝试传递这样的值:
$.ajax({
type: 'POST',
url: '/api/values',
data: '=on',
success: function (data) {
},
});
请注意实际值之前数据部分中的=
。
如果你想使用JSON,你可以从视图模型开始:
public class MyViewModel
{
public string Value { get; set; }
}
您的控制器操作将作为参数:
public void Post(MyViewModel model)
{
// use model.Value here
}
你可以这样调用:
$.ajax({
type: 'POST',
url: '/api/values',
contentType: 'application/json',
data: JSON.stringify({ value: 'on' }),
success: function (data) {
},
});