我一直在早期版本的Sitecore中使用sitecore模块RazorForSitecore。在最新版本的Sitecore中引入MVC后,不再需要这样,实际上不再支持该模块。但我对Sitecore MVC Developer's Reference Guide
的这一部分感到困惑ASP.NET WebForms和MVC都受支持且可以混合使用,但 请求必须由 呈现 WebForms或MVC。
我对使用MVC与路由和控制器等感兴趣(现在)。我只想用razor-files替换我的xsl文件。一次一个。随着时间的推移。但上面的引用表明这是不可能的。
然而,这是我可以用RazorForSitecore做的。
我在这里错过了什么吗?
答案 0 :(得分:2)
是的,您可以像使用XSLT一样使用Razor视图,而不是 为它们创建模型或控制器。
当他们说WebForms和MVC可以混合时,他们意味着你可以用WebForms实现你网站的某些页面,而有些用MVC实现,但你不能在同一页面上混合WebForms和MVC (1)。如果你想开始转向MVC,你必须一次完成整个页面。因此,如果页面是从BrowserLayout.aspx,Content.ascx和Widget.ascx制作的,则需要创建每个页面的.cshtml等效项。
请注意,您 可以在同一页面上混合使用MVC和XSLT ,因此,如果您的网站主要使用XSLT,则可能是您可以开始转换布局( s)到cshtml。完成此操作后,您可以一次转换一个XSLT。
如果您不关心路由和控制器,则可以根据View rendering
模板创建渲染。这些使用@Html.Sitecore().Field("YourFieldName")
自动获取为渲染设置的数据源项,或者如果要访问数据源项,可以使用@Html.Sitecore().CurrentItem
。这种技术相当于使用xslt渲染或普通的子布局(除了使用普通的子布局,你需要编写一些代码来获取数据源)。
(1)除非您通过ajax或iframe动态加载内容