Übergabe von Parametern an Teilweise Blick auf die
Ich versuche zu verstehen teilweise auf und haben eine harte Zeit. Ich habe einen Controller hat die standard-Ansichten zugeordnet (erstellen, Bearbeiten, ...) und auf diese Ansichten, mit Ausnahme der Index
ich möchte einen Datensatz aus einer anderen Model
(Tabelle). Da wäre es das gleiche format und für alle die Aussichten, die ich dachte, ich würde eine Teilansicht. Aber ich habe eine harte Zeit zu verstehen, die Umsetzung des partiellen view.
Für die Bearbeiten, Erstellen, Löschen, und Details Blick bin ich eine Anzeige Device
basiert auf einer DeviceID
an die view. Ich würde gerne meine Teilansicht zeigt das Gerät den jeweiligen Standort auf Basis LocationID
.
Habe ich eine _position Teilansicht mit einer Vorlage von Detail aus meiner Model-Klasse von Location
. Und versucht, übergeben Sie den parameter eine Zahl von erfolglosen Möglichkeiten.
Wie gebe ich die LocationID
zu dem partial view? Lege ich code in der Controller
zurückgibt, die eingeschränkte Sicht und die LocationID
?
Wie funktioniert die Partielle Ansicht wissen, er braucht den LocationID
? Ich habe nachgeschaut tutorials aber ich bin immer noch eine harte Zeit.
InformationsquelleAutor Ethel Patrick | 2016-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn your ' E-rendering auf der server-Seite einen view ("erstellen".cshtml) nennen möchte:
@Html.RenderPartial("_Location", Model)
die RenderPartial verfügt über eine überladung, die akzeptieren ein ViewModel.
Wenn du da die Teilansicht von der client-Seite (via ajax zum Beispiel), die Anfrage trifft die Aktion auf dem controller, und Sie können wieder die partielle:
was würden Sie tun, wenn Sie die "LocationID" durch die Suche in einer anderen Tabelle, durch 'DeviceID', um Sie zu passieren, um meine eingeschränkte Sicht?
hier sind 3 Optionen:
AJAX-Call
ein js ausgeführt wird, ruft eine Aktion auf dem controller holt die Daten aus der DB/Service und senden Sie eine teilweise Ansicht (html-Stück, das Sie aktualisieren Sie den DOM mit)
Verlängerung der ViewModel -
Sie können eine Eigenschaft im ViewModel hält, die die location-Daten. in der Weise, dass die ursprüngliche Anfrage (der eine erstellt die voll Ansicht).
Rufen Sie den Dienst aus der Sicht
die eingeschränkte Sicht kann die locationID als input-parameter (siehe meine Antwort oben), und rufen Sie Ihren Ort-service/repo. Beispiel in _locationPartial.cshtml:
Zu mir, das wäre etwas, das Sie würden tun müssen, um in die controller-Methode, wenn Sie bauen Ihre ViewModel. Sie haben eine DeviceID, so verwenden Sie, dass zu finden, die LocationID, und verwenden Sie, dass die LocationID zu sammeln alle Informationen über den Ort und erstellen eine Instanz einer "Location" - Objekt (entity framework?).
danke für die Erklärung
InformationsquelleAutor Nir Weber
Kann es am besten erstellen Sie eine ViewModel-Typ, die verwendet werden können mit Ihr Bearbeiten, Erstellen, Löschen und Details, Ansichten, enthält alle Informationen, die Sie anzeigen möchten, in Ihren Haupt-und teilweise auf. Dann können Sie
Html.Partial
wie ich getan habe hier in der Nähe des unteren Details.cshtml Rendern, teilweise mit Sicht auf das angegebene Objekt als Modell.Details.cshtml
_position.cshtml
DeviceController Details Methode
Ich bin mir nicht sicher, was du damit meinst. Können Sie die "Detail" - Vorlage für das, was Sie wollen, eigentlich, weil Sie erwartet werden, ändern Sie die templates nach Ihren wünschen, Sie entfernen Sie einfach einige Standardcode in der Sie Ihre Website und läuft in den ersten Platz. Sie müssen nicht, Sie zu benutzen. Hoffentlich wird meine aktualisierte Antwort wird Ihnen helfen, zu sehen, was ich gemeint habe, auf den ersten.
Es Tat helfen, vielen Dank
InformationsquelleAutor Zack