私はWebフォーム開発者であり、.NET MVCの経験があり、Umbracoを初めて使用し、学習を進めています。
これまで、Umbracoのドキュメントとビデオに従ってセットアップを行ってきました。つまり、すべてのコントローラーは、SurfaceControllerから継承する共通の関数を含む「コントローラーベース」から継承します。
ただし、最近、SurfaceControllerではなく基本クラスのRenderMvcControllerを参照しているブロガーや外部参照資料に気づきました。Umbracoのドキュメントでは、2つの実際の違いや、どのような状況で使用すべきかが明確ではありません。
Surface Controllerの想定される使用シナリオの間に明確で明確な違いがありますか?Umbraco.Web.Mvc.SurfaceControllerから継承します=、およびカスタムコントローラーUmbraco.Web.Mvc.RenderMvcControllerから継承しますか?
ありがとう!
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 。
Digbyswiftの回答に基づいてさらに明確にするには:
SurfaceController
= APIまたはフォームターゲット(リダイレクトする)
RenderMvcController
=モデルを構築したり、コンテンツアイテムのビューを選択したりするためのカスタムロジック(ドキュメントタイプと、オプションでテンプレートに基づく)