2010-02-04 30 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# Índice MVC controlador

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

la forma de ejecutar este código? Gracias.

+0

posible duplicado de [array de Publicación jQuery Ajax para ASP.NET Controller MVC] (http://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp- net-mvc-controller) – Meryovi

+0

Aquí está la derecha http://theycallmemrjames.blogspot.com/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html – mola10

Respuesta

2

U no puede pasar mass: items y esperamos que sea serializado como una matriz JSON de forma automática, tendrá que o bien recorrer y construir el JSON (mal plan) o utilizar un (buen plan) JSON library

+0

+1 para un buen enlace. La función que se ejecutará es 'JSON.stringify (x)'. –

0

intento de escritura código como a continuación:

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