【发布时间】:2011-04-20 14:24:19
【问题描述】:
我正在开展一个项目,其中 Spark 已用作视图引擎,并且已决定切换到 Razor。
我已经设法让 Razor 和 Spark 在一个项目中很好地并行工作。唯一的问题是,当我创建 Razor 视图时,它显然没有继承 Spark 主布局的布局和样式。
有没有我可以在不创建 Razor 副本的情况下做到这一点?
【问题讨论】:
标签: asp.net-mvc razor spark-view-engine
我正在开展一个项目,其中 Spark 已用作视图引擎,并且已决定切换到 Razor。
我已经设法让 Razor 和 Spark 在一个项目中很好地并行工作。唯一的问题是,当我创建 Razor 视图时,它显然没有继承 Spark 主布局的布局和样式。
有没有我可以在不创建 Razor 副本的情况下做到这一点?
【问题讨论】:
标签: asp.net-mvc razor spark-view-engine
这是不可能的,因为虽然命名可能相似(部分/部分等),但实现细节差异很大,因为 Spark 和 Razor/WebForms 背后的渲染系统在策略上不同。 Razor 依赖 ASP.NET 本身执行其渲染以获取解析结果,而 Spark 使用其自己的 3-pass 渲染系统为视图生成类文件。
最好的办法是复制主布局,转换为为 Razor 实现的所有各种语义的 cshtml,然后将每个视图转换为 Razor,只需将其指向新的母版页。考虑到这种情况下的复制粘贴选项技术含量低且保证可以工作,因此花时间尝试在其中获得自定义垫片确实不值得。
希望对您有所帮助,
抢
【讨论】:
最简单的(尽管可能是劳动密集型,取决于您的主视图的复杂程度)解决方案是创建一个重复的布局。
否则,这里有一篇关于混合 WebForms 和 Razor 视图和布局的博文:http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx。这几乎是一个 hack,但它可能适用于 Spark。
【讨论】: