次のクラスがあると考えてくださいViewModels
public class Address
{
public String Street { get; set; }
}
public class Person()
{
public Address Address { get; set; }
}
モデルがPerson
であるビューがある場合、これを実行できます。
@Html.EditorFor(model => model.Address.Street)
結果の入力名は にAddress.Street
なり、それをアクションにポストすると、デフォルトのモデル バインダーは、 name である入力がAddress.Street
実際には propertyStreet
内のプロパティを参照していることを認識することができますAddress
。
それはうまくいきます。
ただし、これを使用しようとすると問題が発生します。
this.Url.Action("MyAction", myPerson)
Url シリアライザーは次のように queryString を作成することを期待しています/person/edit?Address.Street=X
が、実際にはAddress
プロパティをシリアル化しません。
このシナリオで Url シリアライザーを機能させるためにできることはありますか?