ASP.NET MVC-Suchformular mit Paginierung

Mir fehlen die Worte, da ich etwas vermissen muss. Gerade fertig ASP.NET MVC 1.0 (WROX) und ich versuche, eine Ansicht zu implementieren, die eine einfache Suche durchführt und dann die Ergebnisse in einer Tabelle rendert. Ich würde dann gerne in der Lage sein, die Ergebnisse durchzublättern.

Ich habe also eine Suchaktion von ListingsController, nehme einige Werte von FormCollection und filtere die Ergebnisse entsprechend:

        //
    //POST: /Listings/Search
    //      /Listings/Page/2
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Search(FormCollection collection,int? page)
    {
        var listings = listingRepository.GetListings();

        //filter
        if (collection["TypeOfHouse"] != null)
        {
            string[] typeList = collection["TypeOfHouse"].Split(',');

            foreach (string type in typeList)
            {
                listings = from l in listings
                           where l.TypeOfHouse == type
                           select l;
            }
        }

        //display the first page of results
        int pageSize = 25;
        var paginatedListings = new PriviledgeV1.Helpers.PaginatedList<Listing>(listings, 0, pageSize);



        return View("Results", paginatedListings);
    }

Zunächst wird die Ergebnisansicht mit den ersten 25 Datensätzen für Seite 1 gerendert. Dann habe ich eine Ergebnisaktion, die die "Paginierung" behandelt:

    public ActionResult Results(int? page)
    {
        int pageSize = 25;
        var listings = listingRepository.GetListings();
        var paginatedListings = new PriviledgeV1.Helpers.PaginatedList<Listing>(listings, page ?? 0, pageSize);

        return View(listings);
    }

Das Problem ist, dass ich die FormCollection nicht mehr habe und die Ergebnisse nicht richtig filtern kann. Wenn ich also versuche, mit / Listings / Results? Page = 2 von Seite 1 auf Seite 2 zu wechseln, wird die Ergebnisaktion ausgelöst und ALLE Ergebnisse anstelle der gefilterten Ergebnismenge aus der Suchaktion zurückgegeben.

Ich bin wirklich verwirrt, was hier zu tun ist und warum es keine Blogs / Tutorials gibt, die dies erklären, was mich normalerweise darauf hinweist, dass mir etwas fehlt.

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage