2010-02-04 5 views
5

javascript \ jQuery:Asp.net Mvc Ajax JSON (post Array)

var items = new Array(); 

var obj { Begin: "444", End: "end" }; 

items.push(obj); 
items.push(obj); 

    var request = { 
      DateStart: $("#DateStart").val(), 
      mass: items 
     }; 


$.post("/Home/Index", request, null, 
"json"); 

C# Mvc Index contrôleur

public class MyClass 
    { 
     public string Begin; 
     public string End; 
    } 

    [AcceptVerbs(HttpVerbs.Post)]   
    public ActionResult Index(   
     string DateStart,    
     MyClass []mass) 
    { 
     System.Diagnostics.Debug.WriteLine(mass[0].Begin); 
    } 

comment exécuter ce code? Merci.

+0

double possible ([tableau afficherons jQuery Ajax pour ASP.NET MVC Controller] http://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp- net-mvc-controller) – Meryovi

+0

Voici le bon http://theycallmemrjames.blogspot.com/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html – mola10

Répondre

2

U ne peut pas passer mass: items et attendre d'être sérialisé comme un tableau JSON automatiquement, vous devrez soit itérer et construire le JSON (mauvais plan) ou utiliser un JSON library (bon plan)

+0

+1 pour le bon lien. La fonction à exécuter est 'JSON.stringify (x)'. –

0

essayer écriture Code ci-dessous:

var option = { 
    url: '/Home/Index', 
    type: 'POST', 
    data:JSON.stringify(request), 
    dataType: 'html', 
    contentType: 'application/json', 
    success: function (result) { alert(result); } 
    }; 
$.ajax(option);