7

アプリケーションを .NET に移行中です。主な目標の 1 つは、ソース コードではなく、クライアントごとにアプリケーションを変更できるようにすることです。インターフェイスをプログラミングし、依存関係リゾルバー (基本登録をオーバーライドするオプションがある) と MEF を使用することで、コア フレームワークでこれを解決しました。

ビュー (クライアントに表示される UI) に関して言えば、テンプレートは静的に見え、クライアントが画面に新しいフィールドを追加したい場合は、ビュー自体を変更する必要があるようです。

私が考えることができる唯一の2つのことは、viewengineの検索パスを変更することです. これにより、ベースのコピーが許可され、ベースへの変更が取得されます。コードのコピーであるため、これはあまり好きではありません。

もう 1 つの方法は、HTML を出力する他のオブジェクトのコンテナーとなるクラスを作成することです。基本的に、レンダリングを呼び出して HTML を出力できる PageObject、LabelObject、InputObject などがあります。それらはクラスであるため、スライス イン ポイントを与えるアプリケーションの残りの部分と同じ方法論を使用できます。このルートをたどると、実際にはビューエンジンをレンダリングに使用するのではなく、すべての部分ビューを結合するためだけに使用します。ちょっと不格好なようです。

この目標を達成する別の方法、またはベース ビューに触れることなくクライアントのカスタマイズを許可するという目標を達成するために使用できる別のビューエンジンはありますか? HTML がオブジェクトではないことは知っていますが、HTML を処理してカスタマイズを可能にする場合、ASP.NET WebForms と ASP.NET MVC の間に何かが必要なようです。

4

1 に答える 1

2

@model入力およびラベルとしてレンダリングされるもののコレクションである、強く型付けされた部分ビューまたはテンプレート (要件に基づく DisplayTemplate または EditorTemplate) を作成します。クライアントが永続化されたコレクション (データベースなど) にアイテムを追加/削除できるようにすると、組み込みの ViewEngine を使用して問題が解決されます。

于 2013-03-07T15:08:37.087 に答える