我在 Razor 中有这个示例代码:
@Html.TextBoxFor(x => ((VisitGozo.Modules.Data.Events.EventSpecificFieldsData)x.Event.DataObject.SpecificFields).LinkedTourismProduct)
如您所见,表达式包括强制转换。TextBoxFor 使用ExpressionHelper.GetExpressionText()
将表达式转换为模型绑定文本的方法。
在上面的示例中,由于强制转换,返回的字段名称是 justLinkedTourismProduct
和 not Event.DataObject.SpecificFields.LinkedTourismProduct
。如果没有任何强制转换,这将正确返回全名。
因此,在模型绑定期间,它不会绑定到正确的属性,因为模型的属性是Event.DataObject.SpecificFields.LinkedTourismProduct
而LinkedTourismProduct
不仅仅是。
知道为什么会发生这种情况,还有其他解决方案/解决方法吗?