wake-up-neo.net

Zugriff auf übergeordnetes Modell aus der Teilansicht

Ich frage, weil die Teilansicht, die ich erstellen werde, leer ist, um eine neue untergeordnete Entität zu erstellen. Ich brauche nur einen schnellen, wenn auch schmutzigen Weg, um aus der Teilansicht auf das übergeordnete Modell zuzugreifen. Ich brauche die ID des Elternteils.

Hat eine Teilansicht automatisch Zugriff auf das Modell des übergeordneten Objekts?

14
AnimaSola

Sie können nicht aus einer Teilansicht auf das übergeordnete Modell zugreifen, wenn Sie diesem Teil beim Rendern einen Wert als Parameter übergeben. Zum Beispiel in Ihrer Hauptansicht:

@model MyViewModel
...
@Html.Partial("_myPartial", new ViewDataDictionary(new { id = Model.Id }));

und dann in Ihrem Teilbereich könnten Sie auf die Id zugreifen:

<div>@ViewBag.Id</div>

Natürlich ist dies eine ziemlich miese Art, Daten an eine Teilansicht zu übergeben. Der richtige Weg ist die Verwendung eines stark typisierten Ansichtsmodells.

14
Darin Dimitrov

Ich weiß, dass dies ein altes Thema ist, aber ich dachte, ich würde meine Lösung zu demselben Problem hinzufügen. Ich denke es ist ein bisschen sauberer.

Fügen Sie der Teilansicht grundsätzlich ein Modell hinzu.

Die einkapselnde Ansicht:

@model whatever
...
@Html.Partial("partialview", anotherwhatever)

Die Teilansicht:

@model anotherwhatever
<div>@Model.something</div>
...

In meinem Fall musste ich nur eine Zeichenfolge in die Teilansicht einfügen (einfach verwenden, um den Code zu kürzen und zu partitionieren). Dies war also viel eleganter als die andere Lösung.

Ich habe die andere Lösung zuerst ausprobiert und konnte sie eigentlich nicht zum Laufen bringen, sie tat einfach so, als wäre der Wert, den ich weitergab, leer.

2
Yushatak

Das endete für mich.

@model MyViewModel
...
@Html.Partial("_myPartial", new ViewDataDictionary { { "id", Model.Id } })

Und in der Teilansicht verwendet, diese ...

<div>@ViewBag.id</div>
1
JOpuckman