1

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

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

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

4

1 に答える 1

1

編集/保存されているオブジェクトを識別するのに十分なメタデータを含むカスタム ViewModel を使用して、この効果を実現できます。これは、ViewModel をレンダリングする部分ビューと組み合わせて使用​​します。メイン ページは ViewModel のメタデータを使用して、ポストを特定のコントローラー アクションに送信して特定のオブジェクトを保存するか、メタデータを一般的なアクション (おそらく非表示の入力として) に戻して、そのアクションが適切なアクションを選択できるようにします。データを保持するテーブル。

個人的には、私はこのアプローチを採用しません。ビュー/アクションを一般化すればするほど、さまざまな状況に適応させる作業が増えると思います。オブジェクトのセットを表示するために同様のことを行いましたが、詳細ビューまたは編集については、より具体的なモデルとビューで作業するのが好きです。

于 2009-07-18T15:01:39.670 に答える