使用具有Razor视图的Spark主布局

时间:2011-04-20 14:24:20

标签: asp.net-mvc razor spark-view-engine

我正在开发一个Spark已被用作View引擎的项目,并且已决定切换到Razor。

我设法让Razor和Spark在一个项目中并肩工作。唯一的问题是当我创建Razor视图时,它显然不会从Spark主布局继承布局和样式。

无论如何我可以在不创建Razor副本的情况下执行此操作吗?

2 个答案:

答案 0 :(得分:7)

这是不可能的,因为虽然命名可能类似(部分/部分等),但实现细节差异很大,因为Spark和Razor / WebForms背后的渲染系统在策略上有所不同。 Razor执行它的渲染依赖于ASP.NET本身来获取解析结果,而Spark使用自己的3遍渲染系统来生成视图的类文件。

您最好的选择是复制主布局,转换为具有为Razor实现的所有各种语义的cshtml,然后将每个视图转换为Razor,只需将其指向新的母版页。考虑到在这种情况下的复制粘贴选项是低技术并且保证可以工作,所以花在试图获得自定义垫片的时间上真的不值得。

希望有所帮助,
罗布

答案 1 :(得分:1)

最简单的(虽然可能是劳动密集型,取决于您掌握视图的复杂程度)解决方案是创建重复的布局。

否则,这是一篇关于混合WebForms和Razor视图和布局的博客文章:http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx。这几乎是一个黑客,但它可能适合与Spark合作。