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)
{...}
将鼠标悬停在项目上时,会显示两个对象。 当我钻取它时,两个值都为空。
答案 0 :(得分:0)
MVC需要一些非常具体的输入,并且要发布非常具体的ID,以便使用它的模型绑定魔法。
如果模型返回null,则表示您没有与模型的每个属性对应的输入,或者您的ID是错误的。
查看此post,了解它的外观。