0

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)
 {...}

将鼠标悬停在项目上时,两个对象都会出现。当我钻透它时,这两个值都是空的。

4

1 回答 1

0

MVC 需要发布一些具有非常特定 id 的非常特定的输入,以发挥其模型绑定的魔力。

如果模型返回 null,则您要么没有与模型的每个属性对应的输入,要么您的 id 错误。

查看这篇文章,了解它应该是什么样子的一些想法。

于 2013-05-24T17:23:40.017 回答