Autocomplete

!
Datalist

!
View
@Html.TextBox("PersonId")
@Html.TextBox("PersonIsWorking")
@Html.AutoCompleteFor(model => model.Id, new PeopleDatalist())
View
@Html.TextBox("PersonId")
@Html.TextBox("PersonIsWorking")
@Html.DatalistFor(model => model.Id, new PeopleDatalist())
Javascript
document.querySelector('.datalist').addEventListener('datalistselect', function (e) {
    document.getElementById('PersonIsWorking').value = e.detail.data[0] && e.detail.data[0].IsWorking;
    document.getElementById('PersonId').value = e.detail.data[0] && e.detail.data[0].Id;
});
Datalist
public class PeopleDatalist : MvcDatalist<Person>
{
    private DbContext Context { get; }

    public PeopleDatalist(DbContext context)
    {
        Context = context;
    }
    public PeopleDatalist()
    {
        Url = "AllPeople";
    }

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

    public override void FormData(Person model)
    {
        Dictionary<String, String> data = base.FormData(model);

        data["IsWorking"] = GetIsWorkingStringFromBoolean(model.IsWorking);

        return data;
    }
}
Model
public class Person
{
    [DatalistColumn(Hidden = true)]
    public Int32 Id { get; set; }

    [DatalistColumn]
    [Display(Name = "Name")]
    public String Name { get; set; }

    [DatalistColumn]
    [Display(Name = "Surname")]
    public String Surname { get; set; }

    [DatalistColumn]
    [Display(Name = "Income")]
    public Int32 Income { get; set; }

    [Display(Name = "Birthday")]
    [DatalistColumn(Format = "{0:d}")]
    public DateTime Birthday { get; set; }

    public Boolean? IsWorking { get; set; }
}