我一直在编写一个将 MVC 用作生成页面的主要引擎的 cms。
我进展顺利,但希望能够为每个站点创建一个独特的剃须刀模板,如果需要,还可以为每个视图创建一个独特的剃须刀模板。
我的规则是每个项目都必须有一个与 url 链接的唯一代码。
每个项目站点的资产以位置与项目相关的方式存储。
因此,与项目 C0001 关联的资产将存储在C0002 中assets\C0001\
并用于 C0002:assets\C0002\
等等。
为了保持整洁,我想做的是让剃须刀模板也与位于该assets\[ProjectCode]
位置的项目相关联,但问题是我收到关于ViewBag not existing in context
.
所以这行不通:
Layout = string.Concat("~/assets/",ViewBag.ProjectNumber,"/_Layout.cshtml");
如下将呈现页面:
Layout = string.Concat("~/Views/Shared/_",ViewBag.ProjectNumber,"Layout.cshtml");
我猜第一个布局没有呈现,因为它在已知的视图搜索区域之外?但是当我告诉它文件在哪里时,我看不出问题出在哪里?
我很高兴使用示例 2 中的代码,但可能意味着在相当数量的项目站点之后,共享视图目录将变得非常繁忙。
Views
只是想知道视图需要存在于目录中是否有原因?