从ajax调用ASP.net 4.5在Post方法中收到的null值

时间:2015-01-11 21:44:36

标签: javascript ajax asp.net-mvc

在我的

  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方法发送数据的最佳方法是什么?

1 个答案:

答案 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) {

    },
});
相关问题