MVC 4 .NET を使用して CMS システムを構築しています
システムには次のオブジェクトがあります。
ページの種類
- ID
- 名前
- Layout - レイアウト ファイルへの URL
ページ
- ID
- 親ID
- コンテンツ(など)
モジュール
- ID
- 名前
- タイプ (画像ギャラリー、連絡先ページ、FAQ などのモジュールのタイプ)
質問
現在、すべてのページにモジュールを実装する方法に苦労しています。すべてのページにコンテンツとモジュールのリストが含まれるように、アプリケーションを作成しました。
私の問題は、ページのレイアウトを事前に知っておく必要があることです。したがって、ビュー内の各モジュールをレンダリングする場所がわかります。
私はこの解決策について考えました:(私が現在使用している現在の解決策)
各ページのタイプのレイアウト ページを作成し、モジュールのタイプを各ページ レイアウトに関連付けます。
ユーザーが新しいページを追加したい場合、最初に関連するモジュールの数とともにレイアウト (ページ タイプ) を選択する必要があります。そのソリューションの問題は次のとおりです。
- ページの種類ごとにレイアウトを作成する必要があります。
- ユーザーは、ページ レイアウト (タイプ) に関連付けられたモジュールのみを追加できます。
2番目の解決策:
私が考えた 2 番目の解決策は、関連するモジュールに基づいて動的にレイアウトを作成することです。私はそれを実装する方法がわからないことを付け加えたいです。
そのソリューションでは、ユーザーは好きなだけモジュールを追加できます。しかし、モジュールでページ構造を定義する方法がわかりません。
- ユーザーがモジュールを作成しなかった場合はどうなりますか? レイアウトにどのように影響しますか?
- モジュールが次々に来ない場合、どうすれば構造を作成できますか?
基本的に、モジュールの位置をページに保存し、ビューにモジュールをその位置にレンダリングする方法があります。
必要な位置で、各モジュールの部分ビューをレンダリングする必要があることを私は知っています。
モジュールオブジェクトがどのように見えるべきか方法があれば?
私の質問は十分に明確ですか?