Javascript POST调用不适用于webapi

Javascript POST调用不适用于webapi,javascript,jquery,asp.net-web-api2,Javascript,Jquery,Asp.net Web Api2,我试图在webapi中发布一些操作的数据。我的web api包含多个POST方法。当我使用postman发布数据时,它会命中控制器方法,但数据会作为null传递。当我从web应用程序命中同一方法时,它不工作,并显示404错误 投递电话: var urlstring = "/api/Membership/BulkUpload" $.post( urlstr

我试图在webapi中发布一些操作的数据。我的web api包含多个POST方法。当我使用postman发布数据时,它会命中控制器方法,但数据会作为null传递。当我从web应用程序命中同一方法时,它不工作,并显示404错误

投递电话:

                        var urlstring = "/api/Membership/BulkUpload"
                        $.post(
                        urlstring,
                          JSON.stringify(exceljson)).

                        success(function(data)
                        {
                        console.log(data);
                        }
                        );
控制器方法:

[HttpRoute("api/Membership/BulkUpload")]
    public HttpResponseMessage BulkUpload([FromBody]string studentDetails)
    {
        Some Code Here
    }

当我把[FromBody]移走时,邮递员也不会打它。我没有发现post call中出错的地方

请尝试以下代码

 var urlstring = "/api/Membership/BulkUpload"
    $.post(
    urlstring,
    {JSON.stringify(exceljson))})

    .done(function(data)
    {
      console.log(data);
    }
 );

您可以尝试以下操作之一:

1-无[来自身体]

客户端

var urlstring = `/api/Membership/BulkUpload?studentDetails=${value}`
                        $.post(
                        urlstring,
                          {}).

                        success(function(data)
                        {
                        console.log(data);
                        }
                        );


[HttpRoute("api/Membership/BulkUpload")]
    public HttpResponseMessage BulkUpload(string studentDetails)
    {
        Some Code Here
    }
var urlstring = '/api/Membership/BulkUpload'
                        $.post(
                        urlstring,
                          {
                             studentDetails : value 
                          }).
                        success(function(data)
                        {
                        console.log(data);
                        }
                        );
2-映射到C#对象

客户端

var urlstring = `/api/Membership/BulkUpload?studentDetails=${value}`
                        $.post(
                        urlstring,
                          {}).

                        success(function(data)
                        {
                        console.log(data);
                        }
                        );


[HttpRoute("api/Membership/BulkUpload")]
    public HttpResponseMessage BulkUpload(string studentDetails)
    {
        Some Code Here
    }
var urlstring = '/api/Membership/BulkUpload'
                        $.post(
                        urlstring,
                          {
                             studentDetails : value 
                          }).
                        success(function(data)
                        {
                        console.log(data);
                        }
                        );
服务器端

[HttpRoute("api/Membership/BulkUpload")]
    public HttpResponseMessage BulkUpload([FromBody]studentApiModel dataIn)
    {
        Some Code Here
    }

 public class studentApiModel 
 {
        public string studentDetails { get; set; }
 }

我假设变量exceljson已经是一个json,您要再次将其字符串化吗?另外,请尝试将您的数据作为表单数据发布,而不是将其替换为表单数据。是否可以编写代码examplevar urlstring=“/api/Membership/BulkUpload”$.post(urlstring,{variable1:value1,variable2:value2}.success(函数(数据){console.log(数据);});它不起作用。我正在编辑一个问题。添加:postman命中控制器,但参数作为null值传递可能只是尝试一下>>>尝试将第二个参数更改为{“硬编码字符串”}你能在fiddler中验证postman和你的ajax调用是否遵循相同的url。同时请比较两者的请求正文。