Gibt es irgendeine Möglichkeit, einen Standard-MasterView für alle Aktionen in einem bestimmten Controller zu setzen?ASP.NET MVC - Master-Ansicht entsprechend mit Controller einstellen
Zum Beispiel, wenn ich die Homecontroller Ich möchte, dass alle Aktionen in den Site.Master als Standard erben, aber wenn ich in bin AccountsController Ich möchte die ganze Action der Admin erben. Meister und so weiter ..
habe ich es geschafft, es zu tun mit:
return View("viewName", "masterName", objectModel);
Aber auf diese Weise habe ich es anwenden, jedesmal wenn ich die View-Methode aufrufen.
Ich war auf der Suche nach etwas einfacher wie auf Schienen, wo wir erklären können:
class HomeController < ApplicationController
layout 'site'
def index
end
def create
...
end
class AccountsController < ApplicationController
layout 'admin'
def index
end
def create
...
end
Ist das möglich?
Vielen Dank im Voraus
Hallo Olle, danke für deine Antwort. Eine Sache, die ich nicht verstanden habe, ist, wie ein ViewData ["MasterfileToUser"] die Master-Datei widerspiegelt? Ist das etwas anderes, was ich tun sollte, damit die Master-Datei korrekt geladen wird? – zanona
Meine schlechte Zuordnung aus viewdata wird nicht funktionieren. Ich habe einen zweiten Stich gemacht, aber ich bin momentan nicht irgendwo, wo ich das testen kann. In OnActionExected das Ergebnis (eine ViewResult-Instanz) ist verfügbar es hat eine Masterpage-Eigenschaft, so dass ich es jetzt dort zuweisen. Bitte testen Sie sich selbst :) – olle
Olle Nur eine Think hier ... Jetzt jedes Mal, wenn ich die Methode RedirectToAction aufrufen, wirft es einen Fehler: Kann nicht Objekt des Typs 'System.Web.Mvc.RedirectToRouteResult' zu Typ 'System.Web. Mvc.ViewResult '. Und acuses die MasterFileFileAttribute-Klasse. Irgendwelche Ideen, wie man es löst? Danke – zanona