MVC虚拟魔法映射或“模型绑定”

时间:2013-05-24 16:02:54

标签: asp.net-mvc

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"...>

发布控制器 调试时PackageByContractIDEquipmentByContractID都是null

发送的值为int

在我的控制器中

 [HttpPost]
 public ActionResult Index(ProposalItem Item)
 {...}

将鼠标悬停在项目上时,会显示两个对象。 当我钻取它时,两个值都为空。

1 个答案:

答案 0 :(得分:0)

MVC需要一些非常具体的输入,并且要发布非常具体的ID,以便使用它的模型绑定魔法。

如果模型返回null,则表示您没有与模型的每个属性对应的输入,或者您的ID是错误的。

查看此post,了解它的外观。