2012-02-24 14 views
3

シナリオは:私が働く会社は、その機能が契約によって定義されている製品を出荷する必要があります。ASP.NET MVC 3で設定可能なシステムを作成するには?

  • 一つのクライアントが表示されるデータベースと、ダウンロード、および他の多くの製品からのデータのみを必要とする完全なすべてのレポート機能を備えたシステム、とか
  • 他のクライアント(またはより正確に、製品)が必要ですシナリオは近い将来に上昇する可能性があります。

異なるシステムを作成し、それぞれにバグを追加して修正するのではなく、クライアントに送信するかどうかを設定することが妥当と思われます。私はそれにエレガントな解決策を見つけることを試みている...私のコントローラと私のモデルはまったく同じになりますが、私のビューは大きな時間を変更します。

どのようにすればいいですか?

答えて

0

設定ごとにビューが異なる場合は、各ビューフォルダにサブフォルダを作成することをお勧めします。 Views/Home/Config1/Index.cshtml,Views/Home/Config2/Index.cshtmlなど コントローラー内でView(およびPartialView)機能をオーバーライドすると(たとえば、MasterControllerを作成)、自動的にビューディレクトリの右のサブフォルダに切り替えることができます。

+0

しかし、それは優雅に見えません。私は、それぞれの異なるセットアップのために、私は各コ​​ントローラの別のビューフォルダを作成することを意味します。結局、私は多くのフォルダで終わるだろう。 –

+0

これは、たとえば、顧客あたりの構成ではなく、固定構成が3つの場合にのみ有効です。 – Marthijn

1

私が正しく理解しているかわかりません。 2つの異なるフィーチャセットがあり、両方の機能セットを1つのコードベースで結合したいとしますか?彼らはどのレベルで似ていますか?

私は、次のいずれかを実行し、データとロジック層 (More Here)のための単一のコードベースを維持し、プレゼンテーション層上の差異の量にdepdendingで作業したい

  • 別のasp.net mvc3を作成します。他の層からの私の "共有"ライブラリを使用するプロジェクト
  • 単一のasp.net mvc3プロジェクトですべての機能を作成し、特定のものを有効/無効にするルートで作業します。したがって、各クライアントに対して特定のビルドを必要としません。

詳細がわかりません。私はあまり言い表せません。

+0

まあ、コンテキストはPower Generationです。つまり、Power Plantとその生成ユニットに関するデータが表示されます。これらのユニットは当社のハードウェアによって収集されます。私が取り組んできたシステムでは、商用データやメンテナンスデータなどの管理データ、およびプラントのイメージ、またリストやチャートで収集されたデータも表示されます。今は管理データを表示しない製品が必要ですが、正しい方法で行う方法はわかりません。 –

+0

さて、今実装しているのと同じ正確なロジックを使用して、2番目の製品に必要なものを追加し、出荷前に無効にしたものだけを無効にすることができます(提案の回答を参照)。実装関連の問題がありますか? – WDRust

+0

基本メニュー(サンプルに付属)を作成したときのように、ifがifを使って何かを表示すべきかどうかをcshtmlのifが決定するようにしたかったのです。たとえば、このデータを送信するために各コントローラアクションでViewBagアイテムを作成することは望ましくありませんが、このデータはシステムの一部である必要があります。少なくともそれは私がそれが働くのを見ることができる1つの方法です。 –

0

この情報をデータベースに入れてはいけません(ユーザーがアクセスできるビューのようなものです)、この情報に基づいてメニューを作成してはいけませんか?

これは、メニュー構造全体が動的になることを意味します(メニューが静的であると想像しているように、これは大きく変わるでしょう)。しかし、それはあなたの問題を解決するだろうと私は思う。

+0

それはまさに私が望まないものです。私はwikiアプリケーションやMantis Bug Trackerのように設定可能なものを求めています。異なる役割を作成する場合は、提供する注釈を使用するだけで十分です。 –

関連する問題