Frage

Gibt es eine gute Möglichkeit, Viewdata, um verschachtelte Masterseiten zuweisen? Zum Beispiel in meinem Top-Level-Masterpage Ich könnte in den Benutzerinformationen auf dem angemeldet habe. Ich habe auch eine verschachtelte Masterpage, die angezeigt wird, wenn der Benutzer auf jeder Abteilungsseite. Ich möchte, dass die Daten nur auf Abteilungsseiten.

Das ist also, wie es aussieht:

Top Level Master Page - Includes ViewData["userData"]
    |
    |
    ---> Nested Master Page - Includes ViewData["departmentalData"]

Also, wenn ich eine Ansicht, die die geschachtelte Masterseite verwendet es sowohl Viewdata [ „userdata“] und Viewdata [ „departmentalData“] umfassen würde. Aber wenn ich nur die Top-Level-Master-Seite verwende, dann habe ich nur Viewdata [ „userdata“]. Ist das möglich?

War es hilfreich?

Lösung

Wenn Sie darauf bestehen, Viewdata als Datenträger zu den Master-Seiten mit (anstelle von Html.RenderAction (...) aus dem MvcContrib Projekt, das ich wahrscheinlich verwenden würde), dann, wenn Sie, in welchen Fällen die verschachtelten identifizieren können Masterpage verwendet werden, Sie können Setup ein Actionfilter zur Eingabe der benötigten Daten in Viewdata [ „departmentalData“].

Andere Tipps

Eine Möglichkeit ist, eine Erweiterungsmethode auf beiden View und Viewmaster zu schreiben, um die Daten zu erhalten, die Sie benötigen. Ich bin nicht sicher, aber ich denke, das ist es, was Rob Conery tat in seinem Commerce.MVC Paket. Werfen Sie einen Blick auf das.

Wir hatten das gleiche Problem. Bisher kamen wir für alle Regler mit einer Basisklasse und eine geschützte Methode, um das Bildschirmtextsystem zu erzeugen. Wir nennen es von allen Aktionen, die diese spezielle Masterseite verwenden.

Ich werde auf jeden Fall diese Frage folgen, um zu sehen, was andere haben sich mit.

Es ist ein Konzept der Untersteuerungen für MVC (Ich bin nicht sicher, ob dies immer noch vorhanden ist, und wird seinen Weg in der MVC-Framework machen). Sie können es im mvc contrib Projekt auf Codeplex finden. Einige Beschreibung oder Blog-Post finden Sie hier ...

http://mhinze.com/subcontrollers-in-aspnet-mvc/

und das Bewegen von Objekten zu diesem Subzentrale wird hier diskutiert ...

http://mhinze.com/passing-objects-to-subcontrollers/

Dies ist auf Masterpages beruht, sondern könnte Ihnen helfen ...

Solange Ihr Controller das richtige Bildschirmtextsystem für die Seite setzt, die dann betrachtet werden, wird es nicht sollte ganz gleich, wie viele Masterseiten verwendet werden. Oder bin ich etwas fehlt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top