Ich verwende ASP.NET MVC 4 mit Entity-Framework-Modell zuerst.
In meiner "Masterpage.cshtml" möchte ich eine Teilansicht haben, die ein Textfeld und eine Schaltfläche enthält.
Die Suche sucht nach dem Titel des Elements. Wenn der Text einen Titel enthält, sollte er diese Elemente anzeigen.
Wenn ein Text gesendet wird, sollte @renderbody()
eine Ansicht mit den Elementen anzeigen.
Meine Frage ist, wie kann ich das gut machen? Was ist ein guter und einfacher Ansatz?
Bisher habe ich das getan:
Eine Methode in meinem Repository erstellt, die die Suchfunktion ausführt:
%Vor%Jetzt, wenn es zu meinem Searchcontroller kommt, habe ich irgendwie verloren, wie man das macht. Weil ein Actionresult die Teilansicht sein muss, die einen String-Abfrageparameter hat, und eine andere, die eine View enthält, die die Items anzeigt?
Was ich jetzt getan habe, ist, den ganzen Prozess in demselben Aktionsresultat zu haben:
%Vor%jede Art von Hilfe wird sehr geschätzt!
Sie könnten den folgenden Ansatz verwenden:
Index.cshtml
Haben Sie einen DIV, der die Such-Controller-Aktion aufruft, und einen anderen, der die Ergebnisse anzeigt.
%Vor%_SearchFormPartial.cshtml
Erstellen Sie eine Teilansicht, die das Suchformular enthält. Sie können Ajax.BeginForm
verwenden. Wenn ein Benutzer die Ergebnisse durchsucht, werden die Ergebnisse in der Datei search-results
DIV in Index.cshtml von AJAX angezeigt. UpdateTargetId
gibt an, dass die Ergebnisse der Suche an search-results
DIV übergeben werden sollen.
In Ihrem Controller benötigen Sie eine Aktion, um das Formular anzuzeigen (Teilansicht oben) und eine weitere, um die Suchanfrage zu bearbeiten und eine weitere Teilansicht erneut zu senden, in der die Ergebnisse angezeigt werden:
%Vor%_SearchResultsPartial.cshtml
Dieser Teil zeigt die Ergebnisse an. Es ist stark typisiert, ein ItemViewModel
aufzunehmen.
Tags und Links asp.net-mvc c# asp.net search actionresult