【发布时间】:2013-05-24 16:02:53
【问题描述】:
MVC 控制器接受一些传递给它的表单项。 假设名称和地址。
在 [Post] 控制器中 它接收一个 Person 对象。
MVC 魔法映射发生,Person 对象被填充。
1) 这个神奇映射的正确术语是什么?
模型绑定
2) 为什么如果我的 Person 对象有虚拟对象,它不会被神奇地填满?
好的,这是一些真实的代码。
public class PackageItem
{
public int ProposalItemID { get; set; }
public virutal PackageByContract { get; set; }
public int Quantity { get; set; }
}
public class EquipmentItem
{
public int ProposalItemID { get; set; }
public virtual EquipmentByContract { get; set; }
public int Quantity { get; set; }
}
public class ProposalItem
{
public PackageItem PackageItem { get; set; }
public EquipmentItem EquipmentItem { get; set; }
}
EquipmentByContract
和
PackageByContract 对象都有
EquipmentByContractID
和
PackageByContractID
<select name="PackageItem.PackageByContract.PackageByContractID"...>
<select name="PackageItem.EquipmentByContract.EquipmentByContractID"...>
发布控制器
调试时PackageByContractID 和EquipmentByContractID 都是null
发送的值是int
在我的控制器中
[HttpPost]
public ActionResult Index(ProposalItem Item)
{...}
将鼠标悬停在项目上时,两个对象都会出现。 当我钻取它时,这两个值都是空的。
【问题讨论】:
-
耶哈!谢谢伯坎先生
-
通过第 2 部分更好地解释您的意思(例如,使用示例代码)
-
@MartinSmith 好的,我发布了代码谢谢!
-
您在 Post 请求中发送什么值?您的操作将哪些类作为参数?
-
@DarinDimitrov 添加了更多代码
标签: asp.net-mvc