web-dev-qa-db-ja.com

Umbraco 7のSurfaceコントローラーまたはカスタムコントローラー?

歴史

私はWebフォーム開発者であり、.NET MVCの経験があり、Umbracoを初めて使用し、学習を進めています。

これまで、Umbracoのドキュメントとビデオに従ってセットアップを行ってきました。つまり、すべてのコントローラーは、SurfaceControllerから継承する共通の関数を含む「コントローラーベース」から継承します。

ただし、最近、SurfaceControllerではなく基本クラスのRenderMvcControllerを参照しているブロガーや外部参照資料に気づきました。Umbracoのドキュメントでは、2つの実際の違いや、どのような状況で使用すべきかが明確ではありません。

質問

Surface Controllerの想定される使用シナリオの間に明確で明確な違いがありますか?Umbraco.Web.Mvc.SurfaceControllerから継承します=、およびカスタムコントローラーUmbraco.Web.Mvc.RenderMvcControllerから継承しますか?

ありがとう!

11
Chris Wilson

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

18
Digbyswift

Digbyswiftの回答に基づいてさらに明確にするには:

SurfaceController = APIまたはフォームターゲット(リダイレクトする)

RenderMvcController =モデルを構築したり、コンテンツアイテムのビューを選択したりするためのカスタムロジック(ドキュメントタイプと、オプションでテンプレートに基づく)

7
Richard Szalay