2010-02-04 24 views
5

javascript \ jQuery:Asp.net MVC Ajax JSON (posta 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 Indice controller

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); 
    } 

come eseguire questo codice? Grazie.

+0

possibile duplicato del [jQuery Ajax Il posting array per ASP.NET MVC controller] (http://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp- net-mvc-controller) – Meryovi

+0

Ecco il diritto http://theycallmemrjames.blogspot.com/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html – mola10

risposta

2

U non può passare mass: items e si aspettano di essere serializzato come un array JSON automaticamente, è necessario sia iterare e costruire il JSON (cattivo piano) oppure utilizzare un (buon piano) JSON library

+0

+1 per un buon collegamento. La funzione da eseguire è 'JSON.stringify (x)'. –

0

prova di scrittura codice come di seguito:

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