【问题标题】:Sys.Serialization.JavaScriptSerializer in AJAX autocompleteAJAX 自动完成中的 Sys.Serialization.JavaScriptSerializer
【发布时间】:2010-11-02 04:41:39
【问题描述】:

我在 ASP.NET 页面上有一个 ajax 自动完成功能。这会从 Web 服务调用一个方法,该方法返回一些邮政编码。

public string[] GetNames(string prefixText, int count, String contextKey)
{
    prefixText = prefixText.Trim();
    XmlNodeList list;
    List<string> names = new List<string>();
    if ((prefixText[0] >= '0') && (prefixText[0] <= '9'))
    {
        if ((contextKey == null) || (contextKey.Equals("")))
            list = cpsForAgences["groupe"];
        else
            list = cpsForAgences[contextKey];
        int i=0;
        foreach (System.Xml.XmlNode node in list)
        {
            if (node.InnerText.ToLower().StartsWith(prefixText))
            {
                names.Add(node.InnerText);
                if (++i >= count)
                    break;
            }
        }
        names.Sort();
        return names.ToArray();
    }
}

在客户端,当他想要发布响应时,它会调用 Sys.Serialization.JavaScriptSerializer.deserialize() 之前:

try {
var pair = Sys.Serialization.JavaScriptSerializer.deserialize('(' + completionItems[i] + ')');if (pair && pair.First) {
text = pair.First;value = pair.Second;} else {
text = pair;value = pair;} 
}

对于以“0”开头的邮政编码,Sys.Serialization.JavaScriptSerializer.deserialize 返回的结果与 completionItems[i] 的值不同,这正是我的值。 为什么会有这种行为?我怎样才能避免这种情况?谢谢!

【问题讨论】:

    标签: asp.net javascript ajax autocomplete


    【解决方案1】:

    我会尝试使用整数而不是字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2012-08-17
      • 1970-01-01
      • 2018-04-23
      相关资源
      最近更新 更多