Umbraco Surface控制器和API控制器之间的区别

时间:2014-05-14 15:19:17

标签: asp.net-mvc-4 umbraco umbraco6 umbraco7

Umbraco的Surface和API控制器有什么区别?

在标准MVC中,一般规则是:

  • API用于返回可由多个应用程序使用的数据。
  • 控制器用于返回视图

但我对Umbraco有点不确定。

到目前为止,我一直在使用表面控制器从表单中发布数据,这让我想知道我是否正确使用它,是否应该使用API​​控制器来实现此目的

您的意见是什么原因?

2 个答案:

答案 0 :(得分:3)

我通常将SurfaceControllers用于MVC的所有内容。我的API控制器用于网站之外的应用程序。 api控制器的一个例子是通过调用/ Umbraco / Api / ResourcesApi / GetFaqs作为JSONResult来获取网站的所有常见问题解答。

public sealed class ResourcesApiController : UmbracoApiController

答案 1 :(得分:2)

我不认为你错了。 Umbraco Surface控制器处理前端用户交互,例如将数据发布到表单中(来自http://our.umbraco.org/documentation/Reference/Mvc/surface-controllers

  

SurfaceController是一个与之交互的MVC控制器   UmbracoPage的前端渲染。它们可用于渲染   Child Action内容,用于处理表单数据提交和   渲染子动作宏。 SurfaceControllers是自动路由的   意味着您不必为这些添加/创建自己的路线   控制器工作。

而您使用API​​控制器来访问其他域中的数据或当前站点的后端。

Umbraco有可能纯粹通过自己的API(例如使用ContentService)开始更常用,并且/ umbraco /访问后台将在更复杂的实现中使用,在web apis阶段将由控制器用于连接模型和观点。将umbraco与其网站断开连接是一个更成熟的CMS模型,可以解决许多部署问题,因此在更多用例中应该使用web api的唠叨感很可能是一个好的。