【问题标题】:ASP.net MVC 2.0 model binding - creates empty child objectsASP.net MVC 2.0 模型绑定 - 创建空子对象
【发布时间】:2011-05-22 18:02:59
【问题描述】:

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

有没有办法阻止这种情况的发生(或者有人知道升级后为什么会发生这种情况)?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我尝试过这样的事情(我实际上只提供了一个我想要绑定的属性的列表),但这不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2013-04-02
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多