加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC控制器与开箱即用的Sitecore控制器

发布时间:2020-12-16 07:35:03 所属栏目:asp.Net 来源:网络整理
导读:我一直在阅读很多关于MVC的博客: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog.aspx 但是,我无法向自己/团队解释/说服: 何时使用自定义控件与开箱即用的站点核心控制器? 何时调用Out of Box控制器? 自定义控制与开箱即用
我一直在阅读很多关于MVC的博客:
http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog.aspx

但是,我无法向自己/团队解释/说服:

>何时使用自定义控件与开箱即用的站点核心控制器?
>何时调用Out of Box控制器?
>自定义控制与开箱即用控制器的优势?
>如果我们开箱即用,我们是否应该在Views上包含所有业务逻辑.这可以测试吗?

我也看了下面但仍不确定:
https://bitbucket.org/demoniusrex/launch-sitecore-mvc-demo

任何帮助将不胜感激.

解决方法

虽然我大致同意Kevin Obee的陈述,但我认为值得提醒自己,在Sitecore中,控制器被用于两个不同的角色:

>页面级控制器(由项目路由调用)
>组件级控制器(由redering机制调用)

何时使用:自定义控制器/默认Sitecore控制器

页面级控制器

默认情况下,任何与项目路径匹配的路由都将使用Sitecore.Mvc.Controllers.SitecoreController上的“索引”操作.此操作将根据项目的布局配置返回ViewResult.

如果您需要更改此行为(例如,影响整个页面的内容),您可以在项目上指定自定义控制器和操作(或项目的标准值).对于自定义控制器,您可以自己滚动或子类化默认控制器.

组件级控制器

对于ViewRendering,Sitecore渲染Razor视图而不需要特定的控制器(我猜它是正在运行的页面级控制器 – 但是想象一下Sitecore提供了一个默认控制器,它使用mvc.getModel管道获取模型并将其提供给它到剃刀观点).

对于ControllerRendering,您提供了一个可以执行逻辑的自定义控制器(请参阅Kevin的答案)并为视图提供模型.子类化Sitecore.Mvc.Controllers.SitecoreController没有任何好处.

何时调用控制器

页面级控制器

页面级控制器上的操作由路由引擎调用.

组件级控制器

在页面视图呈现时调用ControllerRendering上的操作.

使用的好处:自定义控制器/默认Sitecore控制器

自定义控制器优于默认Sitecore控制器的好处是您可以控制逻辑.使用默认Sitecore控制器的好处是Sitecore为您提供逻辑.

我们是否应该在Views上包含所有业务逻辑

不.(见凯文的回答)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读