【发布时间】: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