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