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