Announcement

Collapse
No announcement yet.

Layou-Eigenschfat setzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Layou-Eigenschfat setzen

    Hallo,

    bei MVC4 wird die Mster-seite in der Datei _ViewStart.cshtml central über die Eigenschaft " Layout" festgelegt (Layout = "~/Views/Shared/_Layout.cshtml"; ). Ist das möglich, diese Eingenschaft statt in der _ViewStart.cshtml-Datei irgendwo in CodeBehind (z.B. in einem Controller) zu setzen?

    Gruß

  • #2
    Also Viewstart ist einfach eine cshtml Seite die VOR jedem View ausgeführt wird. Du kannst natürlich in Dein Viewmodel eine Property mit dem Pfad zu einer anderen Master Page einbauen und diese dann in Deiner View einfach setzen. Das kannst Du generell immer machen, weil ich vermute dass die Viewstart vor allem anderen Code läuft. Das heisst der Code der dann in Deinem View steht würde danach laufen und somit das aus der Viewstart überschreiben.

    Comment


    • #3
      Hallo,

      vielen Dank für deine Antwort.
      Soweit ich sehen kann, ist Layout eine (override) Eigenschft von "System.Web.WebPages.StartPage" , die in _ViewStart zentral gesetzt wird. Da ich u.U. mehrere Layouts haben kann, muss ich aber dies erst im CodeBehind entscheiden und so muss diese Eigenschft dort gesetzt werden. Alternative muss ich diese in jeder Seite eintragen.

      Gruß
      Zuletzt editiert von Smart; 07.04.2014, 08:01.

      Comment


      • #4
        War das jetzt nochmal eine Frage? Oder hast Du verstanden was ich oben geschrieben habe?

        Auf jeden Fall kannst Du erstmal die Viewstart weglöschen falls Du dieses Verhalten nicht möchtest. Der Nachteil ist dann dass Du Sie in jedem View selbst setzen musst. Ich denke Du kannst aber auch Deinem View im ViewModel einen Parameter übergeben und damit das Layout für die Seite setzen. CodeBehind gibt es in ASP.NET MVC nicht.

        Comment

        Working...
        X