2012-02-20 181 views

回答

4
public ActionResult Foo() 
{ 
    var list = new List<string>(); 
    list.Add("foo"); 
    list.Add("bar"); 

    return Json(list, JsonRequestBehavior.AllowGet); 
} 

,並在客戶端上:

$.getJSON('@Url.Action("Foo")', function(list) { 
    for (var i = 0; i < list.length; i++) { 
     alert(list[i]); 
    } 
}); 

如果你想要一個數組發送到您的控制器動作作爲輸入:

public ActionResult Foo(string[] foos) 
{ 
    ... 
} 

,你可以做到以下幾點:

var array = []; 
array.push('foo'); 
array.push('bar'); 
$.ajax({ 
    url: '@Url.Action("foo")', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ foos: array }), 
    success: function(result) { 

    } 
}); 
0
JSONArray array = new JSONArray(); 
JSONObject object = new JSONObject(); 

for(int i=0;i<size;i++) 
{ 
//To create an array of objects 
String name = <get name from your list> 
object.put(key name, key value);  // example: object.put("name","whatever string you want"); 

//To create an array of arrays 
JSONArray subarray = new JSONArray(); 
subarray.add(name); 

//Put your object or subarray into the main JSONArray 
array.add(object); 
// OR 
array.add(subarray); 
} 

現在從您的控制器發送您的JSONArray到您的網頁像這樣:

  request.setAttribute("jsonarray",array); 
     RequestDispatcher rd = request.getRequestDispatcher("main.jsp"); 
     rd.forward(request, response); 

,然後使用javscript在您的網頁,

var jsArray = eval('(' + '<%=request.getAttribute("jsonarray")%>' + ')'); 

現在,您可以遍歷它在javascript:

for(var i=0;i<jsArray.length;i++) 
{ 
    var getName = jsArray[i]; 
} 

希望這有助於!