ビューの型を通知しないコントローラで updateModel を使いたい。タイプが異なるさまざまなビューがありますが、すべて継承されたタイプとして ExternalBase クラスがあります。
したがって、コントローラーには常に ExternalBase がありますが、コントローラーは正しいタイプを認識していません。
保存時に、正しいオブジェクトを取得するメソッドを呼び出しますが、これを externalBase として返します。innertype は私の正しい型です。オブジェクトにカーソルを合わせると、保存を呼び出すのはビューのタイプです。updateModel を呼び出すと、プロパティが入力されません。
例として:
// MyExternalBase は空のクラスです
クラスの人
public class Person
: MyExternalBase
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List<TheParameters> Parameters { get; set; }
public Address Address { get; set; }
public TheParameters[] OtherParameters { get; set; }
}
public class Address
{
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public TheParameters Parameter { get; set; }
}
public class TheParameters
{
public string Parameter { get; set; }
}
保存のコントローラーで、次のことを行います。
MyExternalBase p = new Person();
UpdateModel(p, "Person", form.ToValueProvider());
これで、p がいっぱいになりません。
代わりに Person p = new Person() を使用しても問題ありません。しかし、コントローラーをビュータイプから独立させたいと思っています。
これは updateModel のエラーですか、それとも不可能なことですか? または、それに対する回避策はありますか?