Ich habe eine Hauptansicht mit mehreren Teilansichten in meinem C# MVC. Die erste Teilansicht enthält eine Liste, die aus einem Modell in einer Tabelle aufgefüllt wird. Ich möchte in der Lage sein, auf eine Zeile in der Tabelle zu klicken und dann basierend auf der ID eine weitere Teilansicht zu füllen.Übergeben von Daten an den Controller aus der Tabelle in der Ansicht mit C#/Razor MVC
Ich habe ursprünglich verwendet: <tr type="submit" onclick = "location.href = '@(Url.Action("RowClicked", "Test", new { id = @Html.DisplayFor(modelItem => item.ID) }))'" >
die ID an den Server übergeben, aber es hat mich auf eine neue Seite gebracht.
Ich bin mir nicht sicher, ob ich Formulare verwenden muss. Ich möchte in der Lage sein, auf eine der Zeilen zu klicken, um eine weitere Teilansicht basierend auf dem Wert der ID in der angeklickten Zeile neu zu zeichnen, ohne dass die gesamte Seite aktualisiert wird.
Wie senden Sie Daten mit Razor/C# an den Server im Allgemeinen, ohne eine neue Seite aufzurufen, und wie mache ich das aus jeder Zeile einer Tabelle?
Dank
Sie müssen Ajax verwenden, wenn Sie auf derselben Seite bleiben möchten (und die Ansicht im Erfolgsrückruf aktualisieren) –
* Wie senden Sie Daten mit Razor/C# an den Server im Allgemeinen, ohne eine neue Seite aufzurufen * - Dies ist nicht möglich. Sie müssen ** [AJAX] (http://api.jquery.com/jQuery.ajax/) ** verwenden, um Daten ohne Seitenaktualisierung an den Server senden zu können. –
Antwort
Ein paar Hinweise, die Ihnen folgen:
Option 1: Vererben von Elternseite
standardmäßig jede Teilansicht wiedergegeben durch den Aufruf @ Html.Partial ("PartialViewName") wird das Ansichtsmodell an die übergeordnete Ansicht übergeben.
Also, wenn Sie haben:
OrderInfo.cshtml
Die OrderLineItems Seite ein MyNamespace.OrderViewModel an sie übergeben bekommen sollte ... so Ihre Teilansicht aussehen sollte dieses:
OrderLineItems.cshtml
Option 2: Geben Sie Modell
können Sie den zweiten Parameter verwenden, um die Ansicht Modell angeben weitergegeben werden. I.e.
OrderInfo.cshtml
OrderLineItems.cshtml
Option 3: Verwenden Teilaktionen
Wenn Sie wieder brauchen Wenn Sie eine Teilansicht über mehrere Seiten verwenden, kann es sinnvoll sein, eine Teilansicht zu verwenden, um zu vermeiden, dass verschiedene Ansichtsmodelle mit den gleichen Informationen gefüllt werden müssen, nur weil die Seite dasselbe Teil verwendet.
z.
Ansicht Modell
-Controller
OrderInfo.cshtml
OrderLineItems.cshtml
Quelle
2017-08-09 11:24:32 HEGDE
Verwandte Themen