Umbraco 7中的表面控制器或自定义控制器?

时间:2014-09-01 10:26:23

标签: c# asp.net-mvc umbraco umbraco7

历史

我是一名Web Forms开发人员,拥有一些.NET MVC经验,对Umbraco来说是新手,并且在我学习的过程中学习。

到目前为止,我一直在关注Umbraco文档和视频设置,这意味着我的所有控制器都继承自“Controller Base”,其中包含常用功能,这本身就是继承自SurfaceController。

最近,我注意到一些博客和外部参考资料引用了基类中的RenderMvcController而不是SurfaceController - 现在Umbraco文档不清楚两者之间的真正差异,也不应该在哪些情况下使用它们。

问题

表面控制器的想象使用场景之间是否有明显的区别 - 继承自 Umbraco.Web.Mvc.SurfaceController 和自定义控制器 - 继承来自 Umbraco.Web.Mvc.RenderMvcController

谢谢!

2 个答案:

答案 0 :(得分:17)

SurfaceController的文档位于:http://our.umbraco.org/documentation/Reference/Templating/Mvc/surface-controllers

简而言之,SurfaceController用于帮助与视图交互。例如,您可以将表单发布到表面控制器。或者您可以使用SurfaceController

将子操作写入视图

RenderMvcController仅用于路由到已发布的网页。因此,您可以对RenderMvcController进行细分,以便劫持'请求发布特定文档类型的页面。见http://our.umbraco.org/documentation/Reference/Templating/Mvc/custom-controllers

答案 1 :(得分:7)

根据Digbyswift的回答进一步澄清:

SurfaceController = API或表单目标(然后重定向)

RenderMvcController =构建模型的自定义逻辑或为内容项选择视图(基于文档类型和(可选)模板)