2013-11-04 11 views
7

Lavoro con ASP.NET-MVC. Cerco di pubblicare un array in ajax ma non so come ottenerlo nel mio controller. Ecco il mio codice:Come ottenere Ajax Array nel mio controller C#?

Ajax

var lines = new Array(); 
lines.push("ABC"); 
lines.push("DEF"); 
lines.push("GHI"); 
$.ajax(
{ 
    url: 'MyController/MyAction/', 
    type: 'POST', 
    data: { 'lines': lines }, 
    dataType: 'json', 
    async: false, 
    success: function (data) { 
     console.log(data); 
    } 
}); 

MyController

public JsonResult MyAction(string[] lines) 
{ 
    Console.WriteLine(lines); // Display nothing 
    return Json(new { data = 0 }); 
} 

Perché non riesco a vedere le mie battute? Come postare correttamente questo array e usarlo in MyAction?

+1

Provate con 'tradizionale: true' ajax impostazioni dei parametri. – Zabavsky

+0

Prova '{'lines': JSON.stringify (lines)' – WannaCSharp

risposta

14

Impostare l'opzione contentType: "application/json" e JSON.stringify vostro parametro:

var lines = new Array(); 
lines.push("ABC"); 
lines.push("DEF"); 
lines.push("GHI"); 
$.ajax(
{ 
    url: 'MyController/MyAction/', 
    type: 'POST', 
    data: JSON.stringify({ 'lines': lines }), 
    dataType: 'json', 
    contentType: 'application/json', 
    async: false, 
    success: function (data) { 
     console.log(data); 
    } 
}); 

È inoltre possibile impostare il tipo di oggetti che stai ricevendo se ha un senso nel vostro business case. Esempio:

public JsonResult MyAction(string[] lines) 
{ 
    Console.WriteLine(lines); // Display nothing 
    return Json(new { data = 0 }); 
} 

E, qualcosa di più pratico con quello che si sta inviando in:

public class MyModel { 
    string[] lines; 
} 

e infine:

public JsonResult MyAction(MyModel request) 
{ 
    Console.WriteLine(string.Join(", ", request.lines)); // Display nothing 
    return Json(new { data = 0 }); 
} 
-1

In primo luogo, cerchiamo di cambiare:

data: { 'lines': lines } 

a

data: { lines: lines }, 

Se non aiuterà, provare a utilizzare JSON.stringify (linee)

Problemi correlati