Asp.net mvc UpdateModel不处理对视图模型中对象的引用

Asp.net mvc UpdateModel不处理对视图模型中对象的引用,asp.net-mvc,Asp.net Mvc,我正在使用 UpdateModel(<model>, new[] {"Customer.Name", "FirstName", "etc..." }) UpdateModel(,新[]{“Customer.Name”、“FirstName”、“etc…”) 名称是驻留在视图模型中的客户对象的属性 当我发布表单时,我看到值按预期发布。当我进入UpdateModel部分时,FirstName值在那里,但是Customer.Name不在那里 有什么想法吗?附加说明:如果我去掉Updat

我正在使用

UpdateModel(<model>, new[] {"Customer.Name", "FirstName", "etc..." })
UpdateModel(,新[]{“Customer.Name”、“FirstName”、“etc…”)
名称是驻留在视图模型中的客户对象的属性

当我发布表单时,我看到值按预期发布。当我进入UpdateModel部分时,FirstName值在那里,但是Customer.Name不在那里

有什么想法吗?附加说明:如果我去掉UpdateModel中的包含项,只需说 UpdateModel(模型)一切正常

谢谢


rod.

如果我正确理解了你的问题,这个例子可能会有所帮助:

假设模型是

public class Customer{
 public string Name;
 public string Phone;
 public string Email;
}
UpdateModel具有以下签名:

UpdateModel(ModelInstance, string[] whiteList)
其中,实例是模型的实例,白名单是使用发布到控制器操作的值更新模型上的哪些属性

例如,如果您拥有以下代码:

UpdateMode(myCustomerInstance, new string[] {"Name", "Phone"})
这将使用Name和Phone的发布值更新myCustomerInstance对象,忽略发布的电子邮件值。因此,对于发布到控制器操作的每个属性,它将使用反射来检查正在更新的模型是否包含具有此名称的属性。如果是,此属性将使用post ed值更新

查看TryUpdateModel也可能会有所帮助,因为它将吞并任何异常,只返回bool,指示操作是否成功


希望这能澄清一些问题。

请澄清什么是客户。姓名?可能是来自另一个视图模型的某些属性?