2009-07-18 15 views
1

私のWebアプリケーションフレームワーク(現在WebForms)には、従来のプロパティグリッドのように動作するコントロールがあります。オブジェクトID(データベースキー)で初期化された後、オブジェクトのタイプとオブジェクトの属性を決定するためにメタデータが読み込まれます。属性、文字列属性をテキストボックス、bool属性をチェックボックス、列挙型属性をドロップダウンリストとして表示します。ページ送信時に、変更された属性値をデータベースに保存したコントロールctrl.SaveData()のメソッドがあります。MVC再利用可能なプロパティグリッド

WebFormコントロールツリーとイベントモデルは、このアプローチを非常にうまくサポートしています。今、ASP.NET MVCで同様のソリューションを実現することが可能かどうかを尋ねています。主な目的は、あまり面倒ではないさまざまな状況で適用できる汎用的で再利用可能なコンポーネントを持つことです。さらに、ソリューションは、単一ページに複数のオブジェクトのコンポーネントの複数インスタンスを配置するのに十分な柔軟性を備えていなければなりません。ここで自動生成されたWebフォームのHTML IDも役に立ちました。

あなたのアイデアは非常に興味があります!答えてくれてありがとう!

答えて

1

編集/保存中のオブジェクトを識別するのに十分なメタデータを含むカスタムViewModelを使用して、この効果を実現できます。 ViewModelをレンダリングする部分ビューと組み合わせて使用​​します。メインページは、ViewModelのメタデータを使用して特定のコントローラアクションに投稿を誘導し、その特定のオブジェクトを保存するか、メタデータを一般的なアクション(おそらく隠れた入力として)に戻して、データを永続化するテーブル。

個人的には、私はこのアプローチを採用しません。私が感じることは、あなたがより一般的な見方や行動を取るにつれて、さまざまな状況に適応するための作業が増えることです。オブジェクトのセットを見るために私は同様のことをしましたが、詳細なビューや編集のために、より具体的なモデルやビューを扱うのが好きです。

関連する問題