AutoComplete Controller Action not being called

Total Post:70

Points:494
 1117  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. 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)

      Modified On Apr-07-2018 01:29:36 AM

Answer

NEWSLETTER

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