Umbraco的Surface和API控制器有什么区别?
在标准MVC中,一般规则是:
但我对Umbraco有点不确定。
到目前为止,我一直在使用表面控制器从表单中发布数据,这让我想知道我是否正确使用它,是否应该使用API控制器来实现此目的
您的意见是什么原因?
答案 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的唠叨感很可能是一个好的。