Ich habe eine Controller-Aktion, die eine Liste von Aktivitäten an eine Ansicht zurückgibt. (eventID, Venue, Raum, EventDescription, EventType, StartDateTime, EndDateTime). Der Anwender wollte nach Ort filtern können, so dass ich Venue als ID die MethodeMehrere optionale Parameter an die Controller-Aktion übergeben
Aktion hinzugefügtActionResult ListEvents(id string)
{
... Get the relevant details and return the view with the model
}
nun auch durch jeden/alle Ereignistypen, Start, Ende, ob Post filtern sie wollen in der Lage sein - Die Ereignisdaten wurden vervollständigt.
Bin ich besser fügen Sie diese als GET-Abfrage-Parameter oder eine benutzerdefinierte Route zu definieren, die alle 5 Argumente akzeptieren oder gibt es eine andere Lösung
ich auch hinzufügen müssen sortieren und Paginierung an einem gewissen Punkt, falls dieser ändert den Vorschlag.
Dank Chris, fühlt sich wie es mit dem Sein abstrahiert tun könnte. Ist es möglich, die GET-Parameter als einzelnes Array zu lesen und die Array-Elemente zu durchlaufen, um festzustellen, ob sie den Modelleigenschaften entsprechen? –
Nein und nein. Sie könnten ein Ansichtsmodell erstellen, das alle diese Parameter als Eigenschaften akzeptiert und stattdessen an diese bindet, aber Sie müssen trotzdem überprüfen, ob jedes Element festgelegt ist, und entsprechend nacheinander filtern. Die einzige andere Möglichkeit ist die Verwendung von Reflektion, aber das ist nicht nur langsam, sondern funktioniert möglicherweise nicht einmal in Verbindung mit EF, da Klauseln in SQL übersetzt werden müssen. –