0

如果有的话,将 ASP.NET/JavaScript 代码中的键值对添加到 C# 字典的公认方法是什么?TIA。

4

2 回答 2

1

我如何处理这个要求是在 javascript 中获取名称值对中的所有数据,然后通过 ajax 将其发布到服务器......

例如 loc 是您的页面,methodName 是页面后面代码中的 WebMethod,您可以填充为

var arguments = '"data":"name1=value1&name2=value2"';

$.ajax({
    type: "POST",
    url: loc + "/" + methodName,
    data: "{" + arguments + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: onSuccess,
    fail: onFail
});

在您的代码后面,创建一个网络方法,例如

[System.Web.Services.WebMethod(EnableSession = true)]
public static string ItemsForDictionary(string data)
{
    Dictionary<String, String> newDict = ConvertDataToDictionary(data);
}

我使用通用方法将代码隐藏中的此数据参数转换为字典。

private static System.Collections.Generic.Dictionary<String, String> ConvertDataToDictionary(string data)
    {

        char amp = '&';
        string[] nameValuePairs = data.Split(amp);

        System.Collections.Generic.Dictionary<String, String> dict = new System.Collections.Generic.Dictionary<string, string>();

        char eq = '=';

        for (int x = 0; x < nameValuePairs.Length; x++)
        {
            string[] tmp = nameValuePairs[x].Split(eq);
            dict.Add(tmp[0], HttpUtility.UrlDecode(tmp[1]));

        }

        return dict;
    }

无论如何..希望这能给你这个想法......

于 2012-06-28T00:25:47.407 回答
0

你不能直接做。您必须使用 post-back 或 ajax 调用将数据发送回服务器,然后将数据添加到服务器端处理程序中的 Dictionary 中。

如果您发布一些代码以显示您实际尝试做的事情,我们可能会更有帮助。

于 2012-06-27T23:33:19.933 回答