Привязка модели ASP.net MVC 2.0 - создает пустые дочерние объекты - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть приложение asp.net MVC, которое недавно было обновлено с 1.0 до 2.0.Я использую модель данных Linq-to-Sql, и во многих случаях я использовал их в качестве объектов модели, поскольку это было просто и казалось, что работает ...

У меня есть класс, который имеетотношения внешнего ключа с двумя дочерними таблицами - эти дочерние таблицы не всегда будут заполняться (т. е. внешний ключ может иметь значение NULL).

Мой код (немного упрощенный) выглядит примерно так:

/// 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 был создан для двух дочерних объектов - мое сохранение затем завершается неудачей, так как некоторые из них имеют пустые поля, которые не обнуляются.Этого не было до обновления.

Есть ли способ предотвратить это (или у кого-нибудь есть указатель на то, почему это начало происходить после обновления)?

1 Ответ

0 голосов
/ 09 декабря 2010

Вы можете предотвратить это, указав свойства, которые вы хотите исключить из привязки, в качестве параметра в вызове UpdateModel ():

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

Вы можете получить больше информации от MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...