2011-05-22 3 views
3

J'ai une application standard ASP.NET MVC3. En _ViewStart.cshtml, je l'habitude d'avoir:Spécification mise en page d'un autre fichier donne des erreurs de compilation (ASP.NET MVC3/Razor)

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

Tout a fonctionné, et la vie était bonne. Maintenant, je veux déplacer la mise en page dans un répertoire modifiable à l'exécution; quelque chose comme:

@{ 
    Layout = "~/Content/Themes/" + SomeClass.FolderName + "_/Layout.cshtml"; 
} 

(Où potentiellement je qualifierais SomeClass.FolderName = "blah" dans mon code.)

coller une copie de l'ancien Shared/_Layout.cshtml dans le répertoire spécifié par SomeClass.FolderName me donne malheureusement plusieurs erreurs de compilation, comme ViewBag, Url et Html non existants (mais étrangement, User.Identity est toujours accessible).

Qu'est-ce que je manque, et comment puis-je faire ce travail?

Edit:. Basé sur this question, j'ai collé mon web.config/Vues dans le répertoire, et il semble fonctionner - mais un fichier CSS référencé me donne une erreur 404 (par exemple {} SomeClass.FolderName/site.css).

+0

Une erreur spécifique: 'Le nom « ViewBag »n'existe pas dans le context' actuel – ashes999

Répondre

Questions connexes