Autocomplete

!
Datalist

!
View
@Html.TextBox("Income")

@Html.AutoCompleteFor(model => model.Id, new PeopleDatalist())
View
@Html.TextBox("Income")

@Html.DatalistFor(model => model.Id, new PeopleDatalist())
Javascript
document.addEventListener('filterchange', function (e) {
    console.log('Filter input changed', e.target);
});
Controller
public class HomeController : Controller
{
    private DbContext Context { get; }

    public HomeController(DbContext context)
    {
        Context = context;
    }

    [HttpGet]
    public JsonResult AllPeople(DatalistFilter filter, Int32? income)
    {
        PeopleDatalist datalist = new PeopleDatalist(Context) { Filter = filter };
        filter.AdditionalFilters[nameof(Person.Income)] = income;

        return Json(datalist.GetData(), JsonRequestBehavior.AllowGet);
    }
}
Datalist
public class PeopleDatalist : MvcDatalist<Person>
{
    private DbContext Context { get; }

    public PeopleDatalist(DbContext context)
    {
        Context = context;
    }
    public PeopleDatalist()
    {
        Url = "AllPeople";
        AdditionalFilters.Add(nameof(Person.Income));
    }

    public override IQueryable<Person> GetModels()
    {
        return Context.Set<Person>();
    }
}