Razor 内にこのサンプル コードがあります。
@Html.TextBoxFor(x => ((VisitGozo.Modules.Data.Events.EventSpecificFieldsData)x.Event.DataObject.SpecificFields).LinkedTourismProduct)
ご覧のとおり、式にはキャストが含まれています。TextBoxFor はExpressionHelper.GetExpressionText()
、式をモデル バインド用のテキストに変換するメソッドを利用します。
上記の例では、キャストにより、返されるフィールド名は justLinkedTourismProduct
と notEvent.DataObject.SpecificFields.LinkedTourismProduct
です。キャストがなければ、フル ネームが正しく返されます。
Event.DataObject.SpecificFields.LinkedTourismProduct
したがって、モデルのバインド中に、モデルのプロパティが唯一ではないため、正しいプロパティにバインドされませんLinkedTourismProduct
。
なぜこれが起こっているのか、他の解決策/回避策はありますか?