2010-02-04 28 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-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); 
    } 

wie diesen Code ausführen? Vielen Dank.

+0

möglich Duplikat [jQuery Ajax POSTen Array ASP.NET MVC Controller] (http://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp- net-mvc-controller) – Meryovi

+0

Hier ist das Recht http://theycallmemrjames.blogspot.com/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html – mola10

Antwort

2

U kann nicht passieren mass: items und erwarten, dass es automatisch als JSON-Array serialisiert werden, müssen Sie entweder zu durchlaufen und die JSON (schlechter Plan) oder verwenden Sie schreiben einen JSON library (guter Plan)

+0

+1 für eine gute Verbindung. Die auszuführende Funktion ist 'JSON.stringify (x)'. –

0

try konstruieren wie unten Code:

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