【问题标题】:Using Axios POST to ASP.Net WEB API 2 with VB.NET通过 VB.NET 使用 Axios POST 到 ASP.Net WEB API 2
【发布时间】:2019-03-01 02:26:24
【问题描述】:

我无法在我的 VB.NET Web API 2 控制器中读取我的 Axios json 数据。我像发送它一样

var headers = {
        'Content-Type': 'application/json',
         'Access-Control-Allow-Origin': '*'
      }

  let url = 'https://.azurewebsites.net/api/SavePMIDdata/'
  axios.post(url, {
      params: {
        pmids: PMIDList,
        memberID: memberID
      }
    }, {
      'headers': headers
    })
    .then(function (response) {
      resultElement.innerHTML = generateSuccessHTMLOutput(response);
    })
    .catch(function (error) {
      resultElement.innerHTML = generateErrorHTMLOutput(error);
    });
} 

我的 WebAPIConfig 中的控制器信息是:

   config.Routes.MapHttpRoute(
        name:="ActionApi",
        routeTemplate:="api/{controller}/{action}"
    )

我的控制器类是:

 Public Function PostValue(<FromBody()> ByVal data As JToken) As String

我已经试过了:

  Public Function PostValue(<FromBody()> ByVal data As string) As String

Public Function PostValue(<FromBody()> ByVal data As objJSON ) As String

   Public Class objJSON          
        Public Property pmids As String
        Public Property memberID As String
    End Class

当我发送它时,我会得到一个状态 200,如果我输入一个硬编码的返回值,我会得到它,但如果我尝试读取正在发送的参数,我会得到一个空值。我认为我没有正确阅读它们。

如果我尝试做 Dim json As JObject = JObject.Parse(data) 我回来了

"Value cannot be null.\r\nParameter name: s"

如果这是一个重复的问题,请发给我,因为我找不到它。我已经找了三天了。我遇到了一些事情,但我无法让 VB 工作。我正在尝试将旧的 .asmx 代码转换为更新的结构。谢谢你的帮助。

【问题讨论】:

    标签: asp.net-web-api2 axios


    【解决方案1】:

    经过几天的调整,我现在已经创建了有效的方法。我不能 100% 确定这是一种最佳做法,并且希望任何可以给我意见的人提供意见。

    首先我改变了我的

    axios.post(url, {
          params: {
            pmids: PMIDList,
            memberID: memberID
          }
        }, {
          'headers': headers
        })
    

    axios.post(url, {
    pmids:PMIDList, 会员ID:会员ID
    }, { “标题”:标题 })

    我取出了参数:{}

    接下来在我使用的控制器中:

    Public Function PostValue(<FromBody()> ByVal value As objJSON) As String
                Dim x = value.pmids.ToString
                return (x)
    End Function
    

    它现在返回在 axios POST 中发送的 pmids 字符串。我很高兴,现在可以继续前进。如果有最佳实践标准,我很想学习。

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2018-06-11
      • 1970-01-01
      • 2017-11-27
      • 2022-01-12
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 2019-12-07
      相关资源
      最近更新 更多