Ich habe eine Suchseite, die, wenn es Ergebnisse in der Liste gibt, diese Liste an eine Ansicht übergibt. Wenn es jedoch keine Ergebnisse gibt, möchte ich den gesuchten Text an eine keine Ergebnisse gefundene Ansicht senden. Wie würde ich darüber gehen?Wie übergebe ich eine Zeichenfolge an eine Teilansicht in ASP.NET MVC?
Antwort
Der gesuchte Text muss als Teil des Modells verfügbar sein, das an die Ansicht zurückgegeben wird. Dann haben Sie zwei Optionen:
Mit RenderPartial wird die zurückgegebene Ansicht an die Teilansicht übergeben, damit Sie von dort auf den gewünschten Wert zugreifen können.
Html.RenderPartial("PartialView");
Alternativ können Sie die Zeichenfolge als Modell für die Teilansicht passieren
Html.RenderPartial("PartialView", Model.SearchedText);
mit welchem Sinn machen könnte, wenn Sie die keine Ergebnisse Teilansicht mit verschiedenen Modellen verwendet werden sollen.
<%Html.RenderPartial("SimpleTrustGridViewer", ViewData["departmentGrid"]); %>
Dies übergibt ein Objekt Viewdata [ „departmentGrid“] (dies kommt von Bildschirmtextsystem der nicht-Teilansicht) zu der Teilansicht SimpleTrustGridViewer.
vereinfacht:
<%Html.RenderPartial("myUserControl", myString); %>
Und Ihre Teilansicht erbt wie folgt aus:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
Dann wird in der Teilansicht 'Model' der übergebenen Zeichenkette.
Teilansicht, es sei denn, Sie übergeben etwas anderes explizit, hat das gleiche Modell wie die Elternansicht.
Das ViewDataDictionary, das vom Controller an die Ansicht übergeben wird, ist dasselbe, das von der Ansicht an die Teilansicht übergeben wurde. Wenn also die Zeichenfolge, die übergeben werden soll, im ViewDataDictionary enthalten ist, müssen Sie sie nicht übergeben.
<%=Html.RenderPartial("NorResultFound")) %>
Aber man kann die gleiche Ansicht verwenden, ob es Ergebnisse waren oder nicht:
<%if (Model.ResultCount!=0){ %>
<%foreach(var result in Model){ %>
<%= // display results %>
<%}}%>
<%else {%>
<p>There is no results for <%=ViewData["keyword"]%> </p>
<%} %>
Ich stimme dir zu, aber ich bevorzuge ein stark typisiertes Modell statt ViewData und Modell zu mischen. Mein Modell hätte 2 Requisiten (Refactoring freundlich Code: D), Klasse SearchResult { öffentliche IList List {Get; set;} öffentliche Zeichenkette Abfrage {get; einstellen;} } –
Zwei Möglichkeiten (? Sie sprechen Ansichten, nicht Teilansichten rechts) 1) in dem Controller einfach Rufen Sie eine andere Ansicht auf, wenn keine Ergebnisse eine Zeichenfolge als Modell übergeben 2) Erstellen Sie ein Modell mit einem Suchstatus (gefunden x Elemente, keine Übereinstimmung gefunden, etc ...) und eine Liste von Ergebnissen in derselben Ansicht, so dass die Ansicht, um die verschiedenen Ergebnisse mit einer switch-Anweisung zu rendern.
Ich habe das versucht und konnte es nicht zum Laufen bringen. Sagen wir, ich
<div id="SearchBar">
<% using (Html.BeginForm("IndexNoJavaScript", "Home"))
{%>
<%= Html.TextBox("SearchTextBox", ViewData["SearchText"]) %>
<input type="submit" value="Search" /> <% } %>
</div>
<% Html.RenderPartial("SearchResults"); %>
haben Und wenn ich versuche, wie so den Suchtext in dieser Ansicht anzuzeigen:
<%= Html.TextBox("SearchedText", ViewData["SearchText"]) %>
Mein Textfeld ist leer.
Sie können jquery und load()
Aktion auf div-Tag verwenden, anstatt partiell; Das Ergebnis ist ähnlich. Die load()
AJAX-Methode ruft den Controller mit dem gewünschten Text auf. wie:
$('#divId').load('url/'+ serch content);
- 1. Wie übergebe ich mehrere Objekte in ASP.NET MVC an ViewPage?
- 2. Wie übergebe ich eine Zeichenfolge an einen Parameter has_many: finder_sql?
- 3. asp.net mvc Teilansicht
- 4. Wie übergebe ich eine Funktion an Enum.each?
- 5. Wie übergebe ich eine Zeichenkette an setContentView()?
- 6. Wie übergebe ich $ (this) an eine Funktion?
- 7. Wie übergebe ich eine Liste von Ganzzahlen an eine MVC-Aktion?
- 8. ASP.NET MVC 4 Teilansicht nicht
- 9. ASP.NET MVC Teilansicht mit Formular
- 10. Wie übergebe ich eine Variable von einem ActionFilter an eine Controller-Aktion in C# MVC?
- 11. Wie kann ich JSON auf eine Teilansicht in MVC zurückgeben?
- 12. Wie übergebe ich eine Zeichenfolge als Methodenparameter in objective-c?
- 13. ASP.NET MVC Teilansicht jquery Datatables
- 14. Wie übergebe ich eine Nummer an eine Gestenerkennung?
- 15. MSChart und ASP.NET MVC Teilansicht
- 16. PHP - Wie übergebe ich eine globale Variable an eine Funktion
- 17. MVC eine Teilansicht in einem modalen erstellen
- 18. Wie übergebe ich eine retrieve Datenbankdaten an eine andere Seite?
- 19. Wie übergebe ich eine Datenbankvariable an eine Controller-Funktion
- 20. Wie kann ich binden Wörterbuch auf eine Teilansicht in ASP.NET MVC 5 Razor Template-Engine
- 21. ASP.NET MVC Rückgabe Teilansicht als eine vollständige Ansicht Seite
- 22. ASP.NET MVC benutzerdefinierte Typ Liste in Teilansicht
- 23. Wie übergebe ich mehrere Modelle zu Teilansichten in ASP.NET MVC
- 24. Wie übergebe ich eine Liste von Ganzzahlen an eine MVC-Aktion?
- 25. Wie übergebe ich Daten mit Mongoose an eine globale Variable?
- 26. Wie übergebe ich gebundene Daten an eine Funktion in d3?
- 27. Wie übergebe ich eine statische Methode an comp in clojure?
- 28. Wie übergebe ich Parameter an eine MailerPreview-Klasse in Rails?
- 29. Wie zeige ich ein Lade-Spinner beim Einreichen für eine Teilansicht in asp.net MVC?
- 30. Wie kann ich eine Suchfunktionalität mit Teilansicht in asp.net mvc 4
Ich musste es als Teil des Modells hinzufügen. Jetzt muss ich meinen Code umgestalten :) – ddd