从ASP获取AJAX结果.用于select2控件的Net服务
本文关键字:控件 Net 服务 select2 用于 ASP 获取 AJAX 结果 | 更新日期: 2023-09-27 18:11:25
我正试图通过从ASP中提取信息来实现Select2控件。Net Webservice (webforms)。我在服务器代码中放置了一个断点,该方法正在被调用并返回信息,但select2控件从未显示信息,并且没有控制台错误正在被报告(只是服务被击中并返回的事实)。以下是所有信息:
c# Webservice (ListVar是一个有两个字符串属性Value和Text的类):public List<ListVar> SearchUsers(string searchText, string additionalFilter)
{
return WebUserManager.SearchWebUsers(searchText, Boolean.Parse(additionalFilter));
}
JS
$(document).ready(function () {
$('#O_M_aclUser_hfMain').select2({
ajax: {
cache: true,
dataType: "json",
type: "POST",
url: 'http://localhost:54780/Services/Utilities.asmx/SearchUsers',
data: function (term, page) {
return {
searchText: term,
additionalFilter: $('#O_M_aclUser_hfAddFil').val()
};
},
results: function (data, page) {
alert('test1');
return { results: data.d };
}
},
formatResult: FormatResults,
formatSelection: FormatResults,
dropdownCssClass: 'autoCompleteSelect2',
escapeMarkup: function (m) { return m; }
});
});
function FormatResults(result) {
var markup = '<div class="AutoCompleteResult" entityValue="' + result.Value + '">';
markup += result.Text;
markup += '</div>';
return markup;
}
反应<?xml version="1.0" encoding="utf-8"?>
<ArrayOfListVar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<ListVar>
<Value>1</Value>
<Text>Miles McGehee</Text>
</ListVar>
<ListVar>
<Value>777</Value>
<Text>Miles McGehee</Text>
</ListVar>
</ArrayOfListVar>
为什么我的JS结果ajax方法被调用?(我从来没有看到警告信息)为什么信息不显示
您需要修饰您的服务方法,使其响应JSON而不是XML
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<ListVar> SearchUsers(string searchText, string additionalFilter)
{
return WebUserManager.SearchWebUsers(searchText, Boolean.Parse(additionalFilter));
}
select2
期望有一个特定的json格式。响应需要是id
和text
值列表,如{"d":[{"id":"1","text":"hello"},{"id":"2","text":"world"}]}