我有一个标准的ASP.NET MVC3应用程序。在_ViewStart.cshtml中,我曾经有过:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
一切正常,生活也很美好。现在,我想将布局移动到可在运行时修改的目录;类似的东西:
@{
Layout = "~/Content/Themes/" + SomeClass.FolderName + "_/Layout.cshtml";
}
(我可能会在我的代码中调用SomeClass.FolderName = "blah"
。)
将Shared/_Layout.cshtml
旧版SomeClass.FolderName
的副本粘贴到ViewBag
指定的目录中不幸会给我带来一些编译错误,例如Url
,Html
和{{1}不存在(但奇怪的是,User.Identity
仍可访问)。
我缺少什么,我该如何做到这一点?
编辑:基于this question,我将来自/ Views的web.config粘贴到目录中,它似乎有效 - 但引用的CSS文件给了我404(例如。{SomeClass.FolderName} /site.css)。
答案 0 :(得分:5)
The MVC template configures Razor for MVC views in ~/Views/Web.config
。
您需要将Web.config中的Razor部分复制到另一个文件夹。