在 MVC 返回ActionResult中,給我們提供了JSONResult對象,我們可以直接用他來返回JSON對象給前臺JS腳本處理
當我們定義好Model后,把我們的Model 傳給Json這個方法,它會自動根據我們Model 的屬性,遍歷屬性后生成JSON對象,返回給瀏覽器,我們不用做任何處理。。
代碼類似:
public ActionResult JSON()
{
Models.Person p = new DataValidation.Models.Person();
p.FirstName = "test";
return Json(p, JsonRequestBehavior.AllowGet);
}
前臺代碼: $().ready(function() {
$("#btnJSON").click(function() {
$.getJSON("/Home/JSON", function(data) {
alert(data.FirstName);
})
})
})
當我們前臺 調用 這個Action 的時候,會自動給我們生成好json對象,我們前臺js直接使用Model的屬性就可以了。。。當我們沒有Model 的時候,卻要返回JSON對象供前臺JS處理怎么辦呢?其實也很簡單,我們只需要提供 有 鍵/值對 的對象給Json方法就可以了,它會自動根據鍵值對生成json對象,我們可以用 Hashtable/Hashmap...,此時返回給前臺的就只有一個json對象,里面包含不同屬性,我們也可以根據需要返回一組json對象給js使用,當然我們只需再添加一個list來存放這些 鍵值對 對象就可以了,我們把 list 傳遞給 Json方法,它會自動生成一個json對象數組給前臺后臺代碼類似: public ActionResult GetJSON()
{
ArrayList list = new ArrayList();
Hashtable ht1 = new Hashtable();
ht1.Add("name", "myName");
Hashtable h2 = new Hashtable();
h2.Add("name","Test名稱");
list.Add(ht1);
list.Add(h2);
return Json(list,JsonRequestBehavior.AllowGet);
}
前臺代碼: $().ready(function() {
$("#btnJSON").click(function() {
$.getJSON("/Home/getJSON", function(data) {
alert(data.length +" " + data[0].name);
})
})
})
大家可以用firebug 跟蹤一下,其實 給我們組合成了一個 json對象的數組[{"name":"myName"},{"name":"Test名稱"}],JSON對象數組我用$().each(function(json){}),迭代不行,for可以。
文章出處:飛諾網(www.firnow.com):http://dev.firnow.com/course/4_webprogram/asp.net/netjs/20100729/504519.html
浙公網安備 33010602011771號