将数据从ajax发送到c#server
我已经在客户端创建了一本字典,想在服务器端发送它。在我的脚本中,字典是正确创建的,但我不确定我的ajax代码是否正确将数据从ajax发送到c#server,c#,asp.net,ajax,asp.net-ajax,C#,Asp.net,Ajax,Asp.net Ajax,我已经在客户端创建了一本字典,想在服务器端发送它。在我的脚本中,字典是正确创建的,但我不确定我的ajax代码是否正确 $("#btnSubmit").click(function () { var sendList = new Array(); var elems = $(".elemValue"); $.each(elems, function (key, value) { if (value.attributes.ele
$("#btnSubmit").click(function () {
var sendList = new Array();
var elems = $(".elemValue");
$.each(elems, function (key, value) {
if (value.attributes.elemName.nodeValue != "PhotoImg") {
sendList[value.attributes.elemName.nodeValue] = value.attributes.value.nodeValue;
}
});
var data = JSON.stringify({dict : sendList});
$.ajax({
type: "GET",
url: "dataloader.aspx/GetData",
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result){
alert(result.d);
}
});
});
在服务器端,我写了
[System.Web.Services.WebMethod]
public static string GetData(Dictionary<string,string> dict)
{
Dictionary<string, string> serverDict = new Dictionary<string, string>();
serverDict = dict;
string result = "";
foreach (var value in dict)
{
result += "The key is:" + value.Key + "The value is:" + value.Value;
}
return result;
}
[System.Web.Services.WebMethod]
公共静态字符串GetData(Dictionary dict)
{
Dictionary serverDict=新字典();
serverDict=dict;
字符串结果=”;
foreach(dict中的var值)
{
结果+=”键为:“+value.key+”值为:“+value.value;
}
返回结果;
}
我的错误在哪里?我怎样才能纠正它们?帮助,请=)这里有几件事:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod(UseHttpGet=true)]
dataType: "json"
无法让jQuery正确解析响应。您应该删除这一行,或者以JSON格式构建响应我认为不可能从JSON创建字典。至少不需要很多工作。我会尝试将它从
字典
更改为列表
,看看它是否为您反序列化
参考
一旦你这样做了,如果你仍然需要字典,你可以相当容易地转换它
var Dictionary = new Dictionary<string,string>();
foreach(var KVP in List) Dictionary.Add(KVP.Key, KVP.Value);
var Dictionary=newdictionary();
foreach(列表中的var KVP)Dictionary.Add(KVP.Key,KVP.Value);
您是否收到任何错误?没有,任何错误。只是脚本根本不起作用。甚至VS debugger也没有被调用。所以脚本没有发出AJAX请求?@Spencer Ruport,不,它没有。我更改了如下脚本:'$.AJAX({type:“GET”,url:“dataloader.aspx/GetData”,data:data,contentType:“application/json;charset=utf-8”,success:alert(“it's alive!!”) });' 它工作正常:成功事件被执行,但服务器端并没有。问题在于ajax脚本,因为它失败了。感谢您的回答,但首先我需要让这段代码正常工作。=)