从 Ajax 调用 4.5 ASP.net Post 方法中收到的空值

null values received in Post method from ajax call ASP.net 4.5

本文关键字:方法 空值 Post net 调用 Ajax ASP      更新时间:2023-09-26

in my

  public class ValuesController : ApiController

我有一个发布方法:

 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',
            });
        }

问题是方法在string value - null中接收Post

如果此方法有问题:

使用 AJAX 通过 POST 方法发送数据的最佳方式是什么?

尝试像这样传递值:

$.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) {
    },
});