I)コンテンツ タイプ (私の場合はコース)のリストを取得して表示するプロジェクターを作成したとします。
新しいコースを作成するには、次の 3 つの条件を満たす必要があります。
jQuery AJAX 呼び出しを使用して、このリストに新しい要素を追加したいと思います。これには、クライアント側とサーバー側でのデータ検証、およびモデルでのデータ注釈のコードの再利用が含まれます。
AJAX 呼び出しを行う前に、次の図に示すように、jQuery UI を使用したポップアップ ダイアログが表示されます。
しかし、プロジェクターコースリストの左側にボタンを追加したいと思います。このボタンは、フォームを含むダイアログをポップアップし、AJAX を使用してこのプロジェクターの新しい要素 (有効な場合) を作成します。
II)その場合のシナリオに参加している 3 つの異なるプロジェクト:
Course
-コース コンテンツ タイプCreateCourse.cshtml
と、 jQuery UI ダイアログを使用してフォームを作成するための HTML テンプレートを見つけることができる部分ビュー ファイルを定義する場所です。このプロジェクトでは、サービスを呼び出して新しいコース コンテンツ タイプを作成する
CourseController
アクションを持つコントローラも見つけることができます。CreateCourse
Orchard.Projections
- プロジェクターが定義されている場所です。Orchard.Web
- テーマが定義されている場所であり、コース プロジェクトの部分ビューを参照する [アイテムの作成] ボタンを追加するだけで、このプロジェクションの代わりになる可能性がある場所です。CreateCourse.cshtml
問題: 私の問題のほとんどはアーキテクチャに関係していると思います。
最初の質問は、 II)で説明したよりも優れたアプローチはありますか。はいの場合は、お知らせください。
II)が最良のアプローチであることを考慮すると、次のようになります。
~\Orchard.Web\Themes\[Theme Name]\Views\[AlternateName].cshtml
プロジェクターリストの一番上にボタンを追加するために上書きする必要がある代替手段を知りたいです。
~\Course/Views/Shared/CreateCourse.cshtml
代替からの部分ビューを呼び出すことは可能ですか?
よろしくお願いします