我可以在Sitecore中使用Razor视图,就像我使用xslt-renderings一样吗?

时间:2013-12-05 21:43:02

标签: asp.net-mvc razor sitecore

我一直在早期版本的Sitecore中使用sitecore模块RazorForSitecore。在最新版本的Sitecore中引入MVC后,不再需要这样,实际上不再支持该模块。但我对Sitecore MVC Developer's Reference Guide

的这一部分感到困惑
  

ASP.NET WebForms和MVC都受支持且可以混合使用,但 请求必须由 呈现 WebForms或MVC。

我对使用MVC与路由和控制器等感兴趣(现在)。我只想用razor-files替换我的xsl文件。一次一个。随着时间的推移。但上面的引用表明这是不可能的。

然而,这是我可以用RazorForSitecore做的。

我在这里错过了什么吗?

1 个答案:

答案 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动态加载内容