各位大侠帮帮忙啊  本人初学者  有些不懂   
C#后台取得数据库值并转为JSOP格式,用 Response.Write(JsonString());输出结果如下;
([{lmid:'1',lmtop:'1',lmtitle:'该走哪条路?',lmcontent:'你觉得自己行么?',lmuname:'张三',lmdate:'2013-05-10',lmip:'127.0.0.1',lmcount:'0'}]) 
这个格式应该就是正确的JSON格式吧?但是前台取不到JSON的值啊   代码如下:<script type="text/javascript">
    $(function(){
            $.post("Default2.aspx",{
            },function(returnData){
                if(returnData!=""){
                    var str = "<table>";
                str += "<tr><td>留言ID</td><td>是否置顶</td><td>标题</td><td>内容</td><td>作者</td><td>日期</td><td>留言IP</td><td>回复数</td></tr>";
                      var resid = eval(returnData);
                for(var i = 0;i <resid.length;i ++){
                    str += "<td>" +(i+1) + "&nbsp;</td>";
                    str += "<td>"+ resid[i].lmid +"</td>";
                    str += "<td>" + resid[i].lmtop + "&nbsp;</td>";              
                    str += "<td>" + resid[i].lmtitle + "&nbsp;</td>";
                    str += "<td>" + resid[i].lmcontent + "&nbsp;</td>";
                    str += "<td>" + resid[i].lmuname + "&nbsp;</td>";
                    str += "<td>" + resid[i].lmdate + "&nbsp;</td>";
                    str += "<td>" + resid[i].lmip + "&nbsp;</td>";
                    str += "<td>" + resid[i].lmcount + "&nbsp;</td></tr>";
                }
                str += "</table>";
                $("#table").html(str);
                }
                  else{
                   alert("无最近留言!");
                }
            });
        }); 
</script>
在<body>中有如下一句代码:
<div id="table"></div>
为什么它总是弹出“无最近留言!”啊?怎么取不到JSON的值呢?请各位帮帮忙啊!!非常感谢!!!JSONC#函数数据库

解决方案 »

  1.   

    C#后台取得数据库值并转为JSOP格式,用 Response.Write(JsonString());输出结果如下;
     ([{lmid:'1',lmtop:'1',lmtitle:'该走哪条路?',lmcontent:'你觉得自己行么?',lmuname:'张三',lmdate:'2013-05-10',lmip:'127.0.0.1',lmcount:'0'}]) 
    是JSON还是JSONP,这两个东西不太一样,说清楚到底是哪个格式。
    还有把你alert(returnData);的结果贴出来
      

  2.   

    抱歉,,是JSON,我打错了,alert(returnData);弹出来什么也没有,是空的。非常感谢您,这是怎么回事啊?
      

  3.   

    空值的话就说明你前端的页面的AJAX函数并没有取得.cs文件传送过来的数据。
     $.post("Default2.aspx",{
                 },function(returnData){
    改成$.getJSON{("Default2.aspx",{},function(returnData){
             alert(returnData);
        }看看有没有返回结果
      

  4.   

    您好    我换过了  那样弹出的是null    不换的话  弹出的是空白。
    谢谢您啦!这到底是怎么回事啊??
      

  5.   

    我没太接触过ASP,不过你确定是
    $.getJSON{("Default2.aspx",{},function(returnData){
    而不是
    $.getJSON{("Default2.aspx.cs",{},function(returnData){吗?
    你的Response.Write(JsonString());到底是在这两个页面的哪个页面写的?
      

  6.   

    确定是$.getJSON{("Default2.aspx",{},function(returnData){
    而不是
    $.getJSON{("Default2.aspx.cs",{},function(returnData){
    共有两个aspx页面,Mess.aspx,Default2.aspx   两个cs页面Mess.aspx.cs,Default2.aspx.cs
    其中javascript是写在Mess.aspx中的,Default2.aspx中只有一句如下:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    Response.Write(JsonString());包括我从数据库取数据转为JSON格式是写在Mess.aspx.cs中的,
    Default2.aspx.cs除了新建页面时自动添加的代码外什么也没有了。这个还真不明白是怎么回事了,以前用过这种方法写,而且是成功的。
    谢谢您啦!
      

  7.   

    你的$.getJSON{("Default2.aspx",{},function(returnData){
    中的红色{会报错,确定是这样写么?
    我对这个不了解,只是用的时候直接copy以前的成功例子。
    您能把修改后的完整语句写一下吗?十分感谢啊!!
      

  8.   

    你的$.getJSON{("Default2.aspx",{},function(returnData){
    中的红色{会报错,确定是这样写么?
    我对这个不了解,只是用的时候直接copy以前的成功例子。
    您能把修改后的完整语句写一下吗?十分感谢啊!!
      

  9.   

    1、回传 json 时
    $.post() 须有 dataType:'json' 属性,否则只是普通的串
    改成 $.getJSON 也可以
    2、AJAX 通讯时默认使用 utf-8 编码进行,如果回传的不是 utf-8 编码的内容,需先发送相应的编码声明的头
      

  10.   


    我用$.getJSON 了,但是不行啊
    编码申明是怎么做的啊?我在这方面新手
    谢谢啊
      

  11.   

    大概是这样吧?很久没用了
    HtmlMeta Myencode = new HtmlMeta();
    Myencode.HttpEquiv = "Content-Type";
    Myencode.Content = "text/html; charset=gbk";
    Page.Header.Controls.Add(Myencode);
      

  12.   

    各位大侠帮帮忙啊    不胜感激
    为什么用post时alert是空白,什么也没有。
    用getJSON时alert是null。
    这是为什么啊?
    到底哪里有错?请有经验的前辈指点下啊。。
      

  13.   

    我在这里http://bbs.csdn.net/topics/330144067看到有人说
    你的JSON格式不正确,jquery 1.4以后对json格式变严格了,少了双引号
    resp.getWriter().write("{total:100,info:\"ttttttttt\"}");resp.getWriter().write("{\"total\":\"100\",\"info\":\"ttttttttt\"}");也就是说必须要这种格式的
    {"键":"值","键":"值"};像原来的
    {键:值,键:值}
    {'键':'值','键':'值'}这种都是错误的,不合标准,所以jquery返回error
    ”之后我也这样改了,可为什么还是取不到值啊,弹出的是空白。
    请各位帮帮忙啊,多谢!