在我的
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
方法接收到字符串值 - null
如果这种方法有问题:
使用ajax通过post方法发送数据的最佳方式是什么?
最佳答案
尝试像这样传递值:
$.ajax({
type: 'POST',
url: '/api/values',
data: '=on',
success: function (data) {
},
});
请注意数据部分中实际值之前的 =
。
如果您想使用 JSON,那么您应该从 View 模型开始:
public class MyViewModel
{
public string Value { get; set; }
}
您的 Controller 操作将作为参数:
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) {
},
});
关于javascript - Post 方法从 ajax 调用 ASP.net 4.5 接收到 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892441/