Я нашел решение Для тех, кто ищет эту ошибку:
на стороне сервера:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string GetResults(string q)
{
List<Select2Model> list = new List<Select2Model>();
//geting the data to be searched into a list
list = (from DataRow row in _cotalog.Rows
select new Select2Model
{
id = row["CODE"].ToString(),
text = row["LABEL"].ToString()
}).ToList();
if (!(string.IsNullOrEmpty(q) || string.IsNullOrWhiteSpace(q)))
{
list = list.Where(x => x.text.ToLower().Contains(q.ToLower())).ToList();
}
return new JavaScriptSerializer().Serialize(new { results = list, pagination = new { more = true } }); ;
}
на стороне клиента:
$("#<%=DDL.ClientID%>").select2({
placeholder: "Search for item",
minimumInputLength: 3,
ajax:
{
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: '<%= ResolveUrl("~/page.aspx/GetResults") %>',
data: function (params) {
return JSON.stringify({ q: params.term });
},
processResults: function (data, page) {
//console.log(JSON.parse(data.d).results);
return { results: JSON.parse(data.d).results };
}
}
});
Если вы также хочу модель:
public class Select2Model
{
public string id { get; set; }
public string text { get; set; }
}