VIVEK P S
VIVEK P S

Reputation: 315

Jquery select2 plugin with asp.net mvc4 and ajax

I am trying to populate data into Select2 dropdown using JSON which is returned by a controller class.But it is not working.There is no error.Here is the code

client Side

$("#products").select2({
        minimumInputLength: 2,
        ajax: {
            url: "Search",
            dataType: 'json',
            type: "POST",
            quietMillis: 50,
            data: function (term) {
                return {
                    "q": JSON.stringify(term),
                };
            },
            results: function (data) {
                return {
                    results: $.map(data, function (item) {
                        return {
                            text: item.text,
                            id: item.id
                        }
                    })
                };
            }
        }
    });

Controller Action

 [HttpPost]
    public JsonResult Search(string q)
    {
       //testing data
       return Json(new products() {id = "2", text = "biotouch"});      
    }

Product class

public class products()
{
  public string id{get;set;}
  public string text{get;set;}
}

Upvotes: 0

Views: 2469

Answers (2)

VIVEK P S
VIVEK P S

Reputation: 315

It worked when I changed

 results: function (data) {

to

ProcessResults: function (data) {

Upvotes: 1

Jaimin Soni
Jaimin Soni

Reputation: 1071

$("#products").select2({
            minimumInputLength: 2,
            ajax: {
                url: "YourControllerName/Search",
                dataType: 'json',
                type: "POST",
                quietMillis: 50,
                data: function (term) {
                    return {
                        "q": JSON.stringify(term),
                    };
                },
                results: function (data) {
                    return {
                        results: $.map(data, function (item) {
                            return {
                                text: item.text,
                                id: item.id
                            }
                        })
                    };
                }
            }
        });

I have added controller name in URL you forgot to add controller name in url.

Upvotes: 0

Related Questions