【问题标题】:MVC virtual magical mapping or "model binding"MVC 虚拟魔法映射或“模型绑定”
【发布时间】: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"...>

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

发送的值是int

在我的控制器中

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

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

【问题讨论】:

  • 耶哈!谢谢伯坎先生
  • 通过第 2 部分更好地解释您的意思(例如,使用示例代码)
  • @MartinSmith 好的,我发布了代码谢谢!
  • 您在 Post 请求中发送什么值?您的操作将哪些类作为参数?
  • @DarinDimitrov 添加了更多代码

标签: asp.net-mvc


【解决方案1】:

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

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

查看post,了解它的外观。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 2013-01-19
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多