【问题标题】:difference between Umbraco Surface controller and API controllerUmbraco Surface控制器和API控制器的区别
【发布时间】:2014-05-14 15:19:16
【问题描述】:
Umbraco 的 Surface 和 API 控制器有什么区别?
在标准 MVC 中,一般规则是:
- API 用于返回数据,可供多个应用程序使用。
- 控制器用于返回视图
但我对 Umbraco 有点不确定。
到目前为止,我一直在使用表面控制器将数据从表单发送到表单,这让我想知道我是否正确使用它,是否应该为此使用 API 控制器
您发表意见的原因是什么?
【问题讨论】:
标签:
asp.net-mvc-4
umbraco
umbraco6
umbraco7
【解决方案1】:
我通常将 SurfaceControllers 用于所有 MVC。我的 API 控制器用于网站之外的应用程序使用。 api 控制器的一个示例是通过将 /Umbraco/Api/ResourcesApi/GetFaqs 作为 JSONResult 调用来获取网站的所有常见问题解答。
public sealed class ResourcesApiController : UmbracoApiController
【解决方案2】:
我不认为你弄错了。 Umbraco Surface Controller 处理前端用户交互,例如将数据发布到表单中(来自http://our.umbraco.org/documentation/Reference/Mvc/surface-controllers)
SurfaceController 是一个 MVC 控制器,它与
UmbracoPage 的前端渲染。它们可用于渲染
子操作内容,用于处理表单数据提交和
渲染子动作宏。 SurfaceControllers 是自动路由的
这意味着您不必为这些添加/创建自己的路线
控制器工作。
而您会使用 API 控制器来访问其他域中的数据,或者您当前站点的后端。
有可能 Umbraco 将开始纯粹通过其自己的 API(例如使用 ContentService)开始更普遍地使用,并且 /umbraco/ 对后台的访问将在更复杂的实现中变得未使用,此时 web apis控制器将使用它来连接模型和视图。将 umbraco 与其网站断开连接是 CMS 的一种更成熟的模型,并且可以解决许多部署问题,因此您应该在更多用例中使用 web api 的唠叨感觉很可能是一个很好的选择。