我正在使用一个图表,它应该从c#获取输入以绘制图形.我正在使用Json将值从c#返回到jquery.但它对我没有帮助.提前致谢.你能找到我错的地方吗?
这是我的aspx代码
script type="text/javascript">
$(document).ready(function () {
var source = {};
$.ajax({
type: 'POST',dataType: 'json',url: "Default.aspx/getall",contentType: 'application/json; charset=utf-8',cache: false,success: function (response) {
source = $.parseJSON(response.d);
},error: function (err) {
alert('Error');
}
});
这是我的cs代码
public class sampledata
{
public string Day { get; set; }
public int Keith { get; set; }
public int Erica { get; set; }
public int George { get; set; }
}
public partial class _Default : System.Web.UI.Page
{
List<sampledata> s = new List<sampledata>();
protected void Page_Load(object sender,EventArgs e)
{
s.Add(new sampledata { Day = "monday",Keith = 20,Erica = 15,George = 25 });
s.Add(new sampledata { Day = "tuesday",Keith = 25,Erica = 20,George = 35 });
Session["data"] = s;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static List<sampledata> getall()
{
List<sampledata> data = (List<sampledata>)HttpContext.Current.Session["data"];
return data;
}
}
解决方法
我测试了你的代码.一切似乎都很好,除了我将List序列化为一个字符串并返回.
$(window).load(function () {
$.ajax({
type: "POST",url: "PageMethodTest.aspx/getall",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: fnsuccesscallback,error: fnerrorcallback
});
});
function btnclick() {
}
function fnsuccesscallback(data) {
alert(data.d);
}
function fnerrorcallback(result) {
alert(result.statusText);
}
服务器代码:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static String getall()
{
List<sampledata> data = (List<sampledata>)HttpContext.Current.Session["data"];
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(data);
//return data;
}
结果是
您可以改进使用输出作为图表的来源.