Ich spiele mit MVC 6 herum und habe ein Raster von Nutzern, die momentan auf meiner Seite registriert sind. Oberhalb des Gitters habe ich eine View-Komponente für die Such- / Filterfunktionalität erstellt. Es wird über
aufgerufen %Vor%Eine der Anforderungen besteht darin, die Werte der Dropdown-Listen speichern und erneut anwenden zu können, damit ein Endbenutzer schnell auf seine häufig verwendeten Suchen zugreifen kann. Ich habe ein Drop-down in der Ansichtskomponente aller gespeicherten Suchen hinzugefügt.
Sobald ein Benutzer eine Suche speichert, möchte ich die UserSearchBar View-Komponente neu laden, um die Dropdown-Liste zu aktualisieren.
Meine Fragen sind:
Ich könnte ein Partial innerhalb der View-Komponente für das Drop-Down verwenden. Oder fügen Sie der Dropdown-Liste programmgesteuert ein Element hinzu, aber ich hätte immer noch die gleiche Frage, wenn ich die Ansichtskomponente erneut lade, wenn ich auf eine Schaltfläche klicke, um eine der gespeicherten Suchen anzuwenden.
Lösung
Nachdem ich das Problem durchschaut habe, habe ich mir einen besseren (korrekteren?) Weg ausgedacht, der nicht das erneute Laden der View-Komponente erfordert. Führen Sie beim Speichern einen AJAX-Aufruf für die Suchmethode aus, und fügen Sie dem Dropdown-Menü ein Element hinzu. Suchen Sie bei der gespeicherten Suche einen Aufruf an eine Methode, die die gespeicherte Suche zurückgibt und sie anwendet.
Ich möchte jedoch immer noch wissen, ob es möglich ist (und wie), eine View Component in MVC 6 neu zu laden.
Sie müssen lediglich eine Route in einem Controller einrichten, der die Ansichtskomponente zurückgibt. Zum Beispiel:
%Vor%Sie können dann über AJAX eine GET-Anfrage an diesen Controller senden und die alte Ansichtskomponente durch das Ergebnis der Anfrage ersetzen.
Ob Sie eine Teil- oder eine Ansichtskomponente verwenden sollten, bleibt Ihnen überlassen, aber ich würde empfehlen, bei einer Ansichtskomponente zu bleiben, da Sie damit die relevante Logik für die Suchleiste in der Komponente selbst beibehalten können.
Tags und Links ajax asp.net-core asp.net-core-viewcomponent