2017-03-21 4 views
0

Ich muss ein Array von Zeichenfolgen an WebApi senden. Ich habe den folgenden Code ausprobiert, aber ich habe die erwartete Ausgabe nicht erhalten.Senden Array von Zeichenfolge an WebAPI mit Ajax

In Javascript:

$.ajax({ 
    url:serviceUrl+'/sample', 
    type:'POST', 
    data:['a','b','c'], 
    contentType:'application/json', 
    dataType:'JSON' 
}).done(function(data){ 
    console.log(data); 
}).fail(function(data){ 
    console.log(data); 
}); 

In Controller:

[Route("sample")] 
[HttpPost] 
[ResponseType(typeof(string))] 
public IHttpActionResult GetSample(List<string> dataFromUI) 
{ 
    return Ok("Success"); 
} 

In WebAPI ich dataFromUI ohne Elemente zu bekommen. Ich habe sogar JSON.stringify versucht, Daten zu senden, aber ich habe dataFromUI dieses Mal als null.

Ich werde mich freuen, wenn ich die Antwort bekomme.

Danke.

Antwort

0

Sie setzen Route ‚Probe‘ für Ihre Aktion, versuchen Sie mit Probe Aktion aufzurufen

$.ajax({ 
    url:serviceUrl+'/sample' (or your action route), 
    type:'POST', 
    data:['a','b','c'], 
    contentType:'application/json', 
    dataType:'JSON' 
}).done(function(data){ 
    console.log(data); 
}).fail(function(data){ 
    console.log(data); 
}); 
+0

Es didn Ich habe es nicht versucht. –

0

Sie müssen Ihre Array in ein Objekt konvertieren das Array enthält, die Sie als eine Eigenschaft, die passende senden möchten Name Ihres Paramter Aktion des wie folgt:

JSON.stringify({ dataFromUI: ['a','b','c'] }) 

der vollständige Code würde wie folgt aussehen:

$.ajax({ 
    url:serviceUrl+'/sample', 
    type:'POST', 
    data: JSON.stringify({ dataFromUI: ['a','b','c'] }), 
    contentType:'application/json', 
    dataType:'JSON' 
}).done(function(data){ 
    console.log(data); 
}).fail(function(data){ 
    console.log(data); 
}); 
+0

Abrufen von dataFromUI als null –

+0

Meinst du, dein Controller empfängt datafromUi als Nullwert? – Remi

+0

Ja, ich erhalte dataFromUi als Nullwert –

Verwandte Themen