从ASMX Web服务读取XML数据以实现Jquery自动完成
||
我和ASMX Web服务无法正常运行。我们争吵。她提出了我们过去的观点。这很痛苦。我们的关系在石头上!
我有一个ASMX Web服务,但尚未与Newtonsoft库进行序列化(如此处所说明的原因:http://encosia.com/2011/04/13/asp-net-web-services-mistake-manual- json-serialization /)。看起来像这样:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string[] GetCitiesWithState(string isoalpha2, string prefixText)
{
var dict = AtomicCore.CityObject.GetCitiesInCountryWithStateAutocomplete(isoalpha2, prefixText);
string[] cities = dict.Values.ToArray();
return cities;
}
很简单吧?搜索new
时返回:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<ArrayOfString xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://tempuri.org/\">
<string>New Orleans, Louisiana</string>
<string>New York, New York</string>
</ArrayOfString>
我原本希望使用JSON,但是经过一番阅读之后,看来我不应该尝试对输出进行序列化-应该就可以了吗?无论如何,所以我在前端有以下JQuery:
$(\'#<%=txtCity.ClientID%>\').autocomplete(\'<%=ResolveUrl(\"~/AtomicService/Assets.asmx/GetCitiesWithState\")%>\', {
dataType: \'json\',
httpMethod: \'POST\',
contentType: \'application/json; charset=utf-8\',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.d.length; i++) {
rows[i] = { data: data.d[i], value: data.d[i].Value, result: data.d[i].Value };
}
return rows;
},
formatItem: function (row, i, n) {
return row.Value;
},
extraParams: {
minChars: 2,
isoalpha2: \'<%=Session[\"BusinessCountry\"].ToString()%>\',
maxRows: 20,
prefixText: function () {
return $(\'#<%=txtCity.ClientID%>\').val()
}
},
max: 20
}).result(function (event, data, formatted) {
if (data) {
alert(data[\'Key\']);
}
});
我可以使用Chrome查看通话情况:
然而,一切都发生了!没有Jquery错误,没有烟花,没有任何东西。她无视我。
起初,我指责Web服务,但是我认为这可能与我在jquery中解析和格式化数据的方式有关。
所以,我的问题是,我在做什么错?如何使自动完成功能正常工作?
感谢帮助:)
编辑:可能没有帮助,但这是我在Fiddler中看到的内容:
没有找到相关结果
已邀请:
2 个回复
钨蜡唤喉晤
asmx文件
埃输林桨铃