0

ASP.NET Web アプリケーションを開発しています。

1 つのビューでは、基本モデル (BaseObject) があり、コンボ ボックスの選択に応じて、このオブジェクトに固有の情報を持つフィールドがさらに表示されます (SpecificObject1、SpecificObject2 などの独自のモデル クラスを持つ)。

コントローラーのアクションを処理するために、私の考えは次のコードを持つことです:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Update(BaseObject model, FormCollection fc)
{
    ...
}

MyBaseObjectには、特定のオブジェクトを識別するためのプロパティがあります。次に例を示します。model.SubObjectTypeId

私の考えは、コントローラーのアクションに を持ち、特定のモデルswitchに「キャスト」することです。FormCollection

これを自動的に行う方法はありますか、それとも特定のオブジェクト クラスのインスタンスを作成してパラメータを設定するヘルパー クラスを作成する必要がありますか?

入力フィールドの名前は、特定のオブジェクトのプロパティの名前と同じです。

PS: AutoMapper の使用を避けようとしています。私は、ASP.NET MVC による組み込みソリューションを好みます。

ご協力いただきありがとうございます。

4

1 に答える 1

1

通常、これらのケースでは、コントローラー アクションの正しいインスタンスを作成するタスクを持つクラスである ModelBinder を構築することをお勧めします。Form コレクションを解析し、コントローラーに渡すインスタンスを作成します。このようにして、コントローラーはより薄くなり、SRP をより尊重します。:-)

于 2013-09-15T20:24:41.440 に答える