ASP.net MVC 2.0模型绑定 - 创建空子对象

时间:2010-12-09 09:30:45

标签: asp.net-mvc linq-to-sql

我有一个最近从1.0升级到2.0的asp.net MVC应用程序。我使用Linq-to-Sql数据模型,在很多情况下,我一直使用它们作为我的模型对象,因为它很简单,似乎工作...

我有一个与两个子表有外键关系的类 - 这些子表并不总是被填充(即外键可以为空)。

我的代码(稍微简化)看起来像这样:

/// 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调用已经实例化了两个子对象 - 然后我的save失败了,因为其中一些空字段不可为空。这在升级之前没有发生过。

有没有办法阻止这种情况发生(或者是否有人指出为什么自升级以来这种情况开始发生)?

1 个答案:

答案 0 :(得分:0)

您可以通过在UpdateModel()调用中指定要从绑定中排除的属性作为参数来阻止这种情况发生:

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

您可以从MSDN获取更多信息。