2010-12-09 90 views
0

我有一個最近從1.0升級到2.0的asp.net MVC應用程序。我使用Linq-to-Sql數據模型,並且在很多情況下,我一直使用這些作爲我的模型對象,因爲它很簡單並且看起來很有效...ASP.net MVC 2.0模型綁定 - 創建空的子對象

我有一個具有外鍵的類與兩個子表的關係 - 這些子表不會總是被填充(即外鍵可以爲空)。

我的代碼(稍微簡化的)看起來是這樣的:

/// This would be the generated linq-to-sql class 
public class ModelObject 
{ 
    //Bunch of properties 

    public ChildObject { get; set; } 

    public ChildObject2 { get; set; } 
} 

public ActionResult Edit(int ID) 
{ 
    //Get the current saved object 
    ModelObject test = _service.GetModelObject(ID); 

    UpdateModel(test); 
} 

由於升級到2.0,我已經發現的UpdateModel呼叫已被實例化兩個子對象 - 我保存後失敗,因爲其中一些具有不可空的空域。這在升級之前不會發生。

有沒有辦法阻止這種情況發生(或者是否有人指出爲什麼自升級以來這已經開始發生)?

回答

0

您可以通過指定所需的屬性阻止這種情況發生,從在你的UpdateModel()調用的參數綁定排除:

UpdateModel(test, null, null, new [] { "ChildObject", "ChildObject2"}); 

您可以從MSDN獲得更多的信息。

+0

我試過這樣的事情(我實際上只提供了一個我想要綁定的屬性的列表),但是這不起作用。 – Paddy 2010-12-09 12:57:46