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,指示操作是否成功
希望这能澄清一些问题。请澄清什么是客户。姓名?可能是来自另一个视图模型的某些属性?