2010-07-20 47 views
0

上引用合作對象我使用的UpdateModel不是在視圖模型

UpdateModel(<model>, new[] {"Customer.Name", "FirstName", "etc..." }) 

Customer.Name是駐留在一個視圖模型Customer對象的屬性。

當我發佈表單時,我發現值已按預期發佈。當我到達UpdateModel部分時,FirstName值在那裏,但Customer.Name不是。

任何想法?補充說明:如果我從UpdateModel中刪除內容,並且只是說 UpdateModel(模型),它就可以工作。

謝謝,

杆。

+0

請說明Customer.Name是什麼?可能來自另一個視圖模型的某些屬性? – mare 2010-07-20 20:30:18

回答

1

如果我正確理解你的問題可能是這個例子中會有一定的幫助:

比方說,該模型是;

public class Customer{ 
public string Name; 
public string Phone; 
public string Email; 
} 

中的UpdateModel具有以下特徵:

UpdateModel(ModelInstance, string[] whiteList) 

其中實例是你的模型的實例和白名單是哪些屬性將在模型上更新了值發佈到控制器動作。

所以,如果你,例如,有以下一段代碼:

UpdateMode(myCustomerInstance, new string[] {"Name", "Phone"}) 

這將更新姓名和電話的公佈值myCustomerInstance對象,忽視了郵寄的電郵值。因此,對於控制器操作後的每個屬性,它都將使用反射來檢查正在更新的模型是否包含具有此類名稱的屬性。如果是這樣,則此屬性將更新爲post-ed值。

這可能也有助於看看TryUpdateModel,因爲它會吞噬任何異常,只是返回布爾指示操作是否成功

。希望澄清什麼是對位去。