【发布时间】:2013-07-22 16:39:17
【问题描述】:
我有一个需要填充 JQuery 表的 Ajax 网络方法。我的代码没有产生错误,但我的表中没有看到任何数据。
这里是 WebMethod:
这里是返回的 JSON 数据:
目前正在将其发送到这样的基本表:
最终结果是:
有人可以指出为什么没有显示数据吗?
* 编辑 *
这是创建 JSON 数据的方法代码。这是由 WebMethod 调用的,它返回一个字符串
try
{
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
using (JsonWriter jsonwriter = new JsonTextWriter(sw))
{
jsonwriter.WriteStartArray();
int totalrecords = 0;
while (rdr.Read())
{
jsonwriter.WriteStartObject();
int fields = rdr.FieldCount;
for (int i = 0; i < fields; i++)
{
jsonwriter.WritePropertyName(rdr.GetName(i));
jsonwriter.WriteValue(rdr[i]);
}
jsonwriter.WriteEndObject();
totalrecords++;
}
jsonwriter.WriteEndArray();
}
}
这里是hte WebMethod:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ApprovalInfo(string messageId)
{
string json = string.Empty;
json = GetComments(messageId);
return json;
}
* 编辑 * 我已经安装并运行了 DataTables 调试程序,它会产生以下结果:
"sAjaxDataProp": "[{\"UserName\":\"watherton\",\"EnteredDate\":\"2013-07-18T14:36:46.387
\",\"Comment\":\"some comment 2\"},{\"UserName\":\"watherton\",\"EnteredDate\":\"2013-07-
18T16:12:41.753\",\"Comment\":\"some comment 3\"}]",
"aoColumns": [{
"mDataProp": "UserName"
}, {
"mDataProp": "EnteredDate"
}, {
"mDataProp": "Comment"
}]
这对我来说不合适。我在 Firebug 中进行了调试,上面的数据流正在响应选项卡中返回,JSON 选项卡看起来不同。所以,我想在某个地方我需要告诉 WebMethod/AJax 调用使用 JSON 而不是响应。也许?
【问题讨论】:
-
在我离开之前节省时间。有什么区别吗?
-
如果您将一些 JSON 数据硬编码到
dataTable()调用中,它是否有效,例如:{"UserName":"watherton", "EnteredDate":"2013-07-18", "Comment":"comment 1"}?如果不是,那么您向dataTable提供数据的方式存在问题;否则,您的 ASP.NET AJAX 页面方法如何返回 JSON 数据是一个问题。 -
所以,我使用返回的数据创建了一个 Fiddle,并且它可以工作。但是网页里还是没有欢乐jsfiddle.net/s8JmF/149
-
JSON数据标签是什么样的?另外,你能发布你的ApprovalInfo页面方法代码吗? -
我明天就去卡尔。