2017-12-31 47 views
0

Ich kann Ajax und IHttpActionResult verwenden, um Array zu Web-API in C#. NET (VS2017) zu buchen. Es funktioniert jedoch nicht, nachdem ich den Code in vb.net (VC2017) konvertiert habe. Ich bekomme nur 0 Werte für die Variablen. Hier ist mein Code:Post-Array zu Web-API mit IHttpActionResult funktioniert nicht in VB

Klasse:

Public Class Latlon 
    Public Property latIn As Decimal 
    Public Property lonIn As Decimal 
End Class 

API-Controller

<HttpPost> 
Public Function Post(ByVal latlons As List(Of Latlon)) As IHttpActionResult 
    Dim lat1 = latlons(0).latIn 
    Return Content(HttpStatusCode.BadRequest, lat1) 
End Function 

Ajax:

 var latlon = [ 
      { lat: 45, lon: -120 }, 
      { lat: 55, lon: -112 } 
     ]; 
     alert(latlon) 
     $.ajax({ 
      url: uri, 
      method: "POST", 
      data: { '': latlon } 
     }).done(function (result) { 
      alert(result) 
     }).fail(function (xhr) { 
      alert(xhr.responseText); 
     }); 

Chrome F12 enter image description here

Antwort

3

Ihr Eigenschaftsnamen entsprechen nicht

var latlon = [ 
     { lat: 45, lon: -120 }, 
     { lat: 55, lon: -112 } 
    ]; 

ist nicht das gleiche wie in der VB-Klasse

Public Class Latlon 
    Public Property latIn As Decimal 
    Public Property lonIn As Decimal 
End Class 

versuchen, die Eigenschaften in der vb Klasse Umbenennung

Public Class Latlon 
    Public Property lat As Decimal 
    Public Property lon As Decimal 
End Class 
+0

Vielen Dank, Ken ! Du hast mich viele Stunden gerettet. Nach der Konvertierung habe ich Variablennamen geändert, die das Problem verursacht haben. Ich habe es nicht bemerkt. Frohes neues Jahr! – user1617676

Verwandte Themen