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

时间:2011-05-22 12:32:28

标签: asp.net-mvc-3 layout razor

我有一个标准的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指定的目录中不幸会给我带来一些编译错误,例如UrlHtml和{{1}不存在(但奇怪的是,User.Identity仍可访问)。

我缺少什么,我该如何做到这一点?

编辑:基于this question,我将来自/ Views的web.config粘贴到目录中,它似乎有效 - 但引用的CSS文件给了我404(例如。{SomeClass.FolderName} /site.css)。

1 个答案:

答案 0 :(得分:5)

The MVC template configures Razor for MVC views in ~/Views/Web.config。 您需要将Web.config中的Razor部分复制到另一个文件夹。