Webフォームで記述された既存のカスタムCMSをMVC4に移植し、理想的にはCMSデータベーススキーマとデータをそのまま維持します。URLを使用して、要求されているページと使用されているテンプレートを判別しています。テンプレートは、主にさまざまなレイアウトとコンテンツの「フィールド」に使用されます。
私のwebformsアプリには、基本クラスがありますPageTemplate : UserControl
default.aspxがあり、リクエストのパスを確認し、dbからプルしてから、TemplateIdプロパティを使用してユーザーコントロールを動的に読み込み、dbコンテンツをプロパティに追加してから、ページのプレースホルダーに追加します。
p = CMSPage.Select(fullPath);
myTemplate = LoadControl("~/templates/template_" + p.TemplateId.ToString + ".ascx");
myTemplate.Content = p;
phTemplate.Controls.Add(myTemplate);
usercontrolsInit
イベントでは、LiteralタグにCMSからのコンテンツを入力します。つまり、サーバーコントロールボタンとインタラクションを使用し、ポストバックを処理できます。これらはすべてusercontrol内にカプセル化されています。
私は約20のテンプレートを持っていますが、ほとんどはレンダリングのみで、一部はインタラクティブです。ビューエンジンとしてRazorに移行したい。
1)動的コンテンツに基づいて部分ビューをロードし、CMSコンテンツをモデルとしてビューに渡すための最良のMVC方法は何ですか?テンプレートごとにパーシャルを備えた単一のCMSpageコントローラーですか?または、各テンプレートのコントローラーですか?
2)テンプレートパーシャル内から投稿を処理する最も構造化されたMVCの方法は何ですか:単一のCMSコントローラー上のメソッドですか?各テンプレートのコントローラー?
3)擬似コードを歓迎します!
前もって感謝します