2010-11-28 10 views
3

私は最近、ASP.NET MVCの世界に恋しています。私の好きな部分の1つは、厳密に型指定されたビューを持つことができ、データをサービスレイヤに送信すると、これを行うには、モデルオブジェクトをサブミットし、それを使って処理します。強く型付けされたWebFormsをMVC Viewsに似せる方法はありますか?

これは、昨年作成した比較的大規模なWebFormsアプリケーションとは対照的です。このアプリの問題は、クライアントがテーブルの2つのテーブルに150フィールド以上必要だったということでした(フィールド名が数字だったという事実がますます不満でしたが、別の話です)。

私が自分自身が(多くの形で)やっていることは、以下の通りです。

Dim bfs As New BusinessForSale 

With bfs 
    .123 = txt123.Text 
    .124 = txt124.Text 
    ''# etc 
    ''# etc 
    ''# 148 more bloody times 
End With 
''# Yes it was that frigging frustrating. 

次に、bfsオブジェクトをデータベースに送信できます。

MVCでは、このモデルがすべて私のために処理します。

私はそれを完全に間違っていましたか? WebFormsに戻るのではなく、私自身の知識のために、個々のパラメータを個別に設定するのではなく、フォーム "モデル"をデータベースに送信する方法はありますか?私が単調だったので、これは真剣にもっとも痛いプログラミング体験でした。

+0

オブジェクトデータソースを使用できましたか? - http://msdn.microsoft.com/en-us/library/9a4kyhcx.aspx –

+0

これはどのように見えるでしょうか? –

答えて

1

Webフォーム用のコンポーネントを基本的に構築できます。既存のフレームワークには存在しません。私は同じアイデアを持っていました。なぜ、反射的なプロセスが私のためにそれを行うことができるときに、すべてのコードを書いてください。私はこれをNucleoのMVPフレームワーク(http://nucleo.codeplex.com)に取り入そうとしています。それは私の焦点(AJAXポストバックも)の1つになるでしょう。しかし、私は逃げ出します、プラグを申し訳ありません。

とにかく、クラス内のプロパティ名にコントロールIDと一致する反射ピースを作成できます。 ASP.NET MVCで見られるように自動ではできませんが(配管の中核的な違いから)、そのプロセスを開始するメソッド呼び出しと同じように単純なものになる可能性があります。

HTH。

+0

それは私が思っていたもののラインに沿っています。送信時にコントロールのコレクション(チェックボックス、入力、テキストエリアなど)を取得し、テーブルフィールド(LINQ Poco)と同じ名前が付いていることを確認します。その後、要素をループし、それらを整列...ちょうどそれがどのように見えるか分からない。また、 "モデル"を読み込みと編集のためのフォームに送るためのメカニズムが必要です。 –

+0

PS:私は "プラグ"についてあまり心配していません。このサイトの他のサイコの一部とは異なります。貢献したいものがあれば(あなたが広告していない限り)、私は貢献すると言います。 –

+0

確かに、ありがとう。基本的には、いくつかのルート要素を使用して子要素を反復的にループすることができます(これはページから始めるのではなく、フォームのラッパーです)。IDプロパティのフィールドへの一致の開始モデル内でコピーしてからコピーします。 –

1

Thisは、厳密に型指定されたビューに似たものを実装する方法についていくつかのアイデアを与えることができます。

関連する問題