6

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

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

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

但我对 Umbraco 有点不确定。

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

您发表意见的理由是什么?

4

2 回答 2

4

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

public sealed class ResourcesApiController : UmbracoApiController
于 2014-05-16T20:12:29.950 回答
3

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

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

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

有可能 Umbraco 将开始纯粹通过其自己的 API(例如使用 ContentService)开始更普遍地使用,并且 /umbraco/ 对后台的访问将在更复杂的实现中变得未使用,在该阶段将使用 web api通过控制器连接模型和视图。将 umbraco 与其网站断开连接是一种更成熟的 CMS 模型,并且可以解决许多部署问题,因此您应该在更多用例中使用 web api 的唠叨感觉很可能是一个很好的选择。

于 2014-05-19T21:42:32.650 回答