AUTOCOMPLETE CONTROLLER ACTION NOT BEING CALLED

Simons Hood

Total Post:70

Points:494
Posted by  Simons Hood
 892  View(s)
Ratings:
Rate this:

I have a editbox which is linked to auto-complete handler, when I type any character the controller method itself not calling and its not even working also.

 

jQuery

 

$("#NameInput").autocomplete({

    minChars: 3,

    delay: 100,

    cacheLength: 25,

    autoFill: true,

    source: function (request, response) {

        $.ajax({

            url: "/Data/GetNames", dataType: "json",

            data: { id: request.term },

            success: function (data) {

                response($.map(data, function (item) {

                    return { label: item.label, value: item.id }; //updated code

                }));

            }

        });

    },

    select: function (event, ui) {

        return false;

    }

});

Here is the controller method.

 

C#

 

[RequiresRole(Roles = "su, da, rv, sp, dg, ap, ua")]

[AcceptVerbs(HttpVerbs.Get)]

public string GetNames(string term )

{

    //perform DB operations

    return String.Empty;

}

ASPX

 

<input type="text" name="NameInput" id="NameInput" class="NameInputField" maxlength="80" tabindex="3" />

Here getNames method itself not calling, at the time of launching I'm just registering for auto-complete handler. What will be the issue?

  1. Kamlakar Singh

    Post:194

    Points:1396
    Re: AutoComplete Controller Action not being called

    As far as I can see, the issue lies in your ajax call. In the data in you pass, you assign request.term to id - yet your controller method is looking for a parameter called term.

     

    Change your ajax from

     

    data: { id: request.term }

    to

     

    data: { term: request.term }

    Alternatively, change your controller method from

     

    public string GetNames(string term)

    to

     

    public string GetNames(string id)

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!