首页 新闻 赞助 找找看

MVC3.0中使用JQuery.DataTable插件

0
悬赏园豆:100 [待解决问题]

请问 下面代码

前段请求方式

"sAjaxSource": "GetTableData.ashx",

后端回应方式

public void ProcessRequest(HttpContext context)
        {
            string json = DataTableToJson(getJson());
            context.Response.Write(json);
        }

public static string DataTableToJson(DataTable dt)
        {
            StringBuilder json = new StringBuilder();
            json.Append("{\"");
            json.Append("aaData");
            json.Append("\":[");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                json.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    json.Append("\"");
                    json.Append(dt.Columns[j].ColumnName);
                    json.Append("\":\"");
                    json.Append(dt.Rows[i][j].ToString());
                    json.Append("\",");
                }
                json.Remove(json.Length - 1, 1);
                json.Append("},");
            }
            json.Remove(json.Length - 1, 1);
            json.Append("]");
            json.Append("}");
            return json.ToString();
        }

        public static DataTable getJson()
        {
            string constr = "Data Source = .;Integrated Security = SSPI;Initial Catalog = ajax;uid=sa;pwd=sa";
            using (SqlConnection conn = new SqlConnection(constr))
            {
                string sqlstr = "select * from parkinfo";
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = new SqlCommand(sqlstr, conn);
                da.Fill(ds);
                DataTable dt = ds.Tables[0];
                return dt;
            }
        }

点击第一条记录的“查看详细” 为何url路径为http://localhost:1743/Details/undefined 而不是

http://localhost:1743/Details/1

lwmbtmc11的主页 lwmbtmc11 | 初学一级 | 园豆:102
提问于:2013-11-21 15:52
< >
分享
所有回答(2)
0

undefined是js的关键字,那就可以确定,可能是后台生成json串的时候有错误,可能是json符号没有匹配,或者有为null的

导致前端解析时发生undefined的错误。

建议把生成的json仔细检查,或者用firebug查看返回的json数据。

Zery | 园豆:6151 (大侠五级) | 2013-11-21 23:24
0

不要手动拼JSON了。用Newtonsoft.Json

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

JsonConvert.SerializeObject(getJson(), new DataTableConverter());

Giant150 | 园豆:1165 (小虾三级) | 2013-11-22 09:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册