【发布时间】:2015-05-05 13:59:19
【问题描述】:
我正在做一个我没有开始的项目,我有一个输入功能是将数据保存到数据库中。输入留给此函数 (SaveData),但它不起作用。我真的不太了解ajax和json,所以有人可以看看这有什么问题吗?
函数是这样的:
function SaveData() {
var columns = [];
$("#FeaturedContent_m_visible_cols li").each(function (i, elem) {
columns[i] = $(elem).attr("colid");
});
$.ajax({
async: false,
type: "POST",
url: "ConfigList.aspx/SaveConfiguration",
data: "{ 'jsonData': [" + JSON.stringify(columns) + "] }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
},
error: function (response) {
alert(jQuery.parseJSON(response.responseText).Message);
}
});
SaveConfiguration 方法是这样的:
[System.Web.Services.WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string SaveConfiguration(dynamic jsonData)
{
Object[] column = (Object[])jsonData[0];
string col_id;
int i;
for (i=0; i<column.Length; i++) {
col_id = (string)column[i];
}
SaveTableConfiguration();
return "";
}
还有 SaveTableConfiguration:
public void SaveTableConfiguration(int list_id, List<TableHeader> lista)
{
int i;
TableHeader row;
SetListConfig set_lconfig = new SetListConfig(m_connection, m_language);
set_lconfig.LoadRecordset("LC_LISTID=" + list_id.ToString(), m_transaction);
while (!set_lconfig.IsEOF()) {
set_lconfig.m_LC_EDITABLE = 0;
set_lconfig.Update();
set_lconfig.MoveNext();
}
for (i=0; i<lista.Count;i++) {
row=lista[i];
set_lconfig.LoadRecordset("LC_LISTID=" + list_id.ToString() + " AND LC_COLTBL='" + row.header_col + "'", m_transaction);
if (set_lconfig.IsEOF()) {
set_lconfig.m_LC_EDITABLE = 1;
set_lconfig.m_LC_ORDER = i+1;
set_lconfig.Update();
}
}
}
再次感谢! =)
【问题讨论】:
-
你是用c#接收数据吗?
-
使用调试器,看看你的客户端请求是否到达服务器端
SaveConfigurationConfigList.aspx中的web方法。 -
展示SaveConfiguration方法实现+
-
data: "{ 'jsonData': [" + JSON.stringify(columns) + "] }", JSON.stringify a Array into a Array 可能是错误的。它会给你留下那个 json:{ jsonData: [ [ ... ] ] }
-
@Unike 你能定义“它不工作”吗?您没有在成功处理程序中执行任何操作,因此即使成功调用/返回也不会发生任何事情。
标签: javascript c# jquery ajax json