从另一个文件指定布局会产生编译错误(ASP.NET MVC3/Razor)

ash*_*999 3 layout razor asp.net-mvc-3

我有一个标准的ASP.NET MVC3应用程序.在_ViewStart.cshtml中,我曾经有过:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

一切顺利,生活很美好.现在,我想将布局移动到可在运行时修改的目录; 就像是:

@{
    Layout = "~/Content/Themes/" + SomeClass.FolderName + "_/Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

(我可能会SomeClass.FolderName = "blah"在我的代码中调用.)

粘贴旧的副本Shared/_Layout.cshtml到由指定的目录中SomeClass.FolderName不幸给了我几个编译错误,比如ViewBag,UrlHtml不存在的(但奇怪的是,User.Identity仍然是可以访问).

我错过了什么,我怎样才能做到这一点?

编辑:根据这个问题,我将我的web.config从/ Views粘贴到目录中,它似乎工作 - 但引用的CSS文件给我一个404(例如.{SomeClass.FolderName} /site.css).

SLa*_*aks 5

MVC模板为MVC视图配置Razor~/Views/Web.config.您需要将Web.config中的Razor部分复制到另一个文件夹.