0

私はASP.NETフォーム開発の出身で、現在MVC 3.0アプリケーションを開発しています。このアプリケーションでは、顧客がログインすると、ドロップダウンから別のアカウントを選択できます。

ドロップダウンには次のものが含まれます。

  1. ホンダ自動車保険口座
  2. 住宅保険口座
  3. フォード自動車保険口座。

彼女がアカウントの1つを選択すると、ランディングページは彼女の履歴詳細データなどで変化します。アプリケーションには、アカウントタイプごとに異なるコンテンツを持つさらに4つのページが含まれています。

ASP.NETフォームでは、テーマやスキンなどを使用して、ユーザーが選択したアカウントに基づいてページにスタイルを適用できます。ただし、これがMVCで機能するようには見えません。

誰かがMVCで上記を達成するための最良の方法を提案できますか?

  1. ページごとに1つのコントローラーを作成し、アカウントごとにビューを分離しますか?
  2. 各ページのコンテンツは部分的なビューで提供する必要がありますか?
  3. 他に何か提案はありますか?

注意:コントローラーから送信されるJSON構造は、アカウントごとにプロパティが異なるため、アカウントタイプごとに一意です。

ご助力ありがとうございます。

4

1 に答える 1

0

各セクションに個別のコントローラーを使用します。次に、そのコントローラーの View フォルダーに_ViewStart.cshtmlファイルを追加し、その中に入れます

@{
    Layout = "~/Views/Honda/_Layout.cshtml";
}

これは、このコントローラーのレイアウト ページを指します (Honda コントローラーですが、好きな名前を使用してください)。

次に、_Layout filesさまざまなレイアウト、css などを追加できます。

これは、同じサイトに大幅に異なる外観のセクションを表示する最も簡単な方法です。さらに、標準のランディング ページなどを保持するためのデフォルトHomeとコントローラが引き続き存在します。Account

部分的なビューや、このセットアップで必要な他のものを引き続き使用できます。ブラウザが使用していない css やその他のファイルをダウンロードする必要がないため、エンド ユーザーの読み込み時間が短縮されることさえあります。

編集

ScottGu のブログの ASP.NET MVC 3: Layouts with Razorにもう少し詳しい情報があります。

このコードは各ビューの開始時に実行されるため、個々のビュー ファイルでレイアウトを明示的に設定する必要がなくなりました (上記のデフォルト値をオーバーライドする場合を除く)。

重要: _ViewStart.cshtml を使用するとコードを記述できるため、必要に応じて、基本的なプロパティ セットよりも豊富なレイアウト選択ロジックを作成できます。たとえば、サイトにアクセスしているデバイスの種類に応じて、使用するレイアウト テンプレートを変えることができます。これらのデバイスにはスマートフォンやタブレットに最適化されたレイアウト、PC/ラップトップにはデスクトップに最適化されたレイアウトがあります。または、複数の顧客で使用される CMS システムまたは共通の共有アプリを構築している場合、サイトにアクセスするときに、顧客 (またはその役割) に応じて使用するさまざまなレイアウトを選択できます。

これにより、UI の柔軟性が大幅に向上します。また、ビュー ロジックを 1 回記述するだけで、複数の場所で繰り返すのを避けることができます。

于 2012-09-02T09:37:40.967 に答える