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。
なぜこれが起こっているのか、他の解決策/回避策はありますか?