您可能没有做的三件事:
- 将方法标记为静态
- 执行POST
- 为jQuery中的数据传递一个空的“ {}”。
可能有一种用GET调用方法的方法,我只用过POST。我能够使您的示例与此一起工作:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><script> // In your javascript block $(document).ready(function() { $.ajax({ url: "/Default.aspx/Tester", type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: "{}", success: done }); }); function done(data) { // Include http://www.json.org/json2.js if your browser doesn't support JSON natively var data = JSON.parse(data.d); alert(data.total); }</script>背后的代码(您无需创建Web服务,可以将其放在default.aspx中):
[WebMethod]public static string Tester(){ JavascriptSerializer ser = new JavascriptSerializer(); var jsonData = new { total = 1, // we'll implement later page = 1, records = 3, // implement later rows = new[]{ new {id = 1, cell = new[] {"1", "-7", "Is this a good question?", "yay"}}, new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?", "yay"}}, new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?", "yay"}} } }; return ser.Serialize(jsonData); //products.ToString();}结果:
{"d":"{"total":1,"page":1,"records":3,"rows":[{"id":1,"cell":["1","-7","Is this a good question?","yay"]},{"id":2,"cell":["2","15","Is this a blatant ripoff?","yay"]},{"id":3,"cell":["3","23","Why is the sky blue?","yay"]}]}"}更详细的解释在这里



