1


1

マジックストリングなしで強く型付けされた `UpdateModel(myEntity、MagicStringPrefix)`を持つ方法はありますか?

だから私はのように見えるビューモデルを持っている

パブリッククラスFooViewModel {パブリックFoo Foo {get;}セット; ... }

そして私のコントローラーには

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id、FormCollectionコレクション){var foo = _fooRepo.GetFoo(id);

{UpdateModel(foo、 "Foo");を試してください。 _fooRepo.Save();

RedirectToAction( "Index")を返します。 catch(Exception ex){View(new FooViewModel(foo))を返す。 }}

マジックストリングを使わずにこれをやりたいのです。 `UpdateModel(foo、Model.Foo)`のようなもので良いでしょう。 しかし、私は単純に `UpdateModel(foo)`を持ち、Fooに与えられた接頭辞がクラス名であることを推測させることを好みますが、私は本当に自分自身のModelBinderを書く必要はありません。

2 Answer


3


独自の更新方法を定義できます。

MyUpdateModel(T model)protected void MyUpdateModel(T model)ここで、T:class {UpdateModel(model、model.GetType()。Name);} }


0


プロパティ名がすべて一致していれば、厳密に型指定されたオブジェクトをアクションメソッドに渡すことができるはずです。 これを達成するためにあなたがあなた自身のモデル結合を書く必要があるとは思わない。

いくつかのアイデアを得るために このブログを読んでください。