我正在开发一个Spark已被用作View引擎的项目,并且已决定切换到Razor。
我设法让Razor和Spark在一个项目中并肩工作。唯一的问题是当我创建Razor视图时,它显然不会从Spark主布局继承布局和样式。
无论如何我可以在不创建Razor副本的情况下执行此操作吗?
答案 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合作。