Sys.Serialization.JavaScriptSerializer в AJAX автозаполнение - PullRequest
0 голосов
/ 11 июня 2009

У меня есть автозаполнение ajax на странице ASP.NET. Это вызывает метод из веб-службы, который возвращает некоторые почтовые индексы.

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, отличается от значения completeItems [i], которое является в точности моим значением. Почему это поведение? Как я могу избежать этого? Спасибо!

1 Ответ

1 голос
/ 24 июля 2009

Я бы попробовал использовать целое число вместо строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...