首页 > 解决方案 > 使用 AXIOS 将 Array 对象作为 POST 传递给 .NET Web API 时遇到问题

问题描述

我无法将大型数组传递给 .NET WEB api。我了解如何发送一个对象并对其进行反序列化,但我想将整个字符串作为 JSON 对象发送到 MS SQL 2019 存储过程,并让 SQL 服务器使用 OPENJSON 处理该对象。我试过了。有和没有 JSON

     var data = JSON.stringify([
 {
     "ID": "1", 
    "Affiliations": "Stony Brook",
    "DBID": "SB        ",
    "Department": "Biochemistry & Cell Biology" 
  },
 {
     "ID": "2", 
    "Affiliations": "Stony Brook",
    "DBID": "SB        ",
    "Department": "Biochemistry & Cell Biology" 
  },
 {
     "ID": "3", 
    "Affiliations": "Stony Brook",
    "DBID": "SB        ",
    "Department": "Biochemistry & Cell Biology" 
  }

]);  

使用更多数据持续更长时间

  var config = {
  method: 'post',
  url: 'http://api-system/api/PostMembersValues',

  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

我的 Web API 控制器是

   <System.Web.Http.HttpPost> <System.Web.Http.Route("api/PostMembersValues")> Public Function PostValue(ByVal data As List(Of item)) As List(Of item)
  

或者

   <System.Web.Http.HttpPost> <System.Web.Http.Route("api/PostMembersValues")> Public Function PostValue(<FromBody()> ByVal data As String) As String

我的数据库调用是

            sql.CommandType = CommandType.StoredProcedure
            sql.Parameters.AddWithValue("@json", value)

如果我将数组的一部分作为 GET 传递,则一切正常,除非我有 url 大小的限制

标签: javascriptasp.net-web-apiaxios

解决方案


推荐阅读