Datalist
!
View
@Html.DatalistFor(model => model.Id, new PeopleDatalist { Title = "People", Name = "Person" })
Controller
public class HomeController : Controller
{
    private DbContext Context { get; }
    private PeopleRepository Repository { get; }

    public HomeController(DbContext context, PeopleRepository repository)
    {
        Context = context;
        Repository = repository;
    }

    [HttpGet]
    public ViewResult Employ()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Employ(Int32 id?, String person)
    {
        if (id == null)
            id = Repository.CreateMissing(person);

        Repository.Employ(id);

        return RedirectToAction("Index");
    }

    [HttpGet]
    public JsonResult AllPeople(DatalistFilter filter)
    {
        PeopleDatalist datalist = new PeopleDatalist(Context) { Filter = filter };

        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";
    }

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