【发布时间】:2011-04-25 02:17:00
【问题描述】:
看起来其他人也遇到过这个问题,但我似乎找不到解决方案。
我有 2 个模型:Person 和 BillingInfo:
public class Person
{
public string Name { get; set;}
public BillingInfo BillingInfo { get; set; }
}
public class BillingInfo
{
public string BillingName { get; set; }
}
我正在尝试使用 DefaultModelBinder 将其直接绑定到我的 Action 中。
public ActionResult DoStuff(Person model)
{
// do stuff
}
但是,在设置 Person.Name 属性时,BillingInfo 始终为空。
我的帖子是这样的:
“名称=statichippo&BillingInfo.BillingName=statichippo”
为什么 BillingInfo 总是为空?
【问题讨论】:
-
我遇到了同样的问题,在我的情况下,我错过了 ViewModel 中对象上的 Set{},而且我为同一属性定义了 Hidden Field 和 TextBoxFor 字段,两个值都被发布了,一个为空白(隐藏字段),另一个具有正确的用户输入值 (TextboxFor),但模型绑定始终将隐藏字段值置于用户输入值之上,因此它始终为空。
-
@Melu 谢谢!我也错过了属性设置器,并且无法找出嵌套对象无法绑定的原因。太糟糕了,这么多重构工具建议删除 ViewModel 上的 setter,其中嵌套对象是集合等。
标签: asp.net-mvc asp.net-mvc-2 viewmodel