2010-12-09 3 views
0

최근에 1.0에서 2.0으로 업그레이드 된 asp.net MVC 응용 프로그램이 있습니다. 나는 Linq-to-SQL 데이터 모델을 사용하고 많은 경우에 단순한 것으로 생각되어 작업을하는 것처럼 느껴졌 기 때문에이 모델을 내 모델 객체로 사용했습니다 ...ASP.net MVC 2.0 모델 바인딩 - 빈 자식 객체를 만듭니다.

나는 외부 키를 가진 클래스가 있습니다. 두 개의 자식 테이블과의 관계 -이 자식 테이블은 항상 채워지지는 않습니다 (즉, 외래 키는 null 가능).

내 코드 (약간 단순화 된)이이 같은 외모 : 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); 
} 

을, 나는 updateModel 호출이 두 자식 개체를 인스턴스화 된 것으로 나타났습니다 -에 실패 저장의 나, 이들 중 일부는 null 입력이 가능하지 않은 빈 필드가 있기 때문입니다. 이것은 업그레이드 이전에는 일어나지 않았습니다.

이런 일이 발생하지 않게하는 방법이 있습니까? (또는 누가 업그레이드 이후에 이런 일이 발생했는지에 대한 포인터가 있습니까?)

답변

0

당신은 당신의 UpdateModel() 호출에서 매개 변수로 바인딩에서 제외 당신이 원하는 속성을 지정하여 이런 일이 발생을 중지 할 수 있습니다

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

당신은 MSDN에서 더 많은 정보를 얻을 수 있습니다.

+0

나는 이것을 (실제로 바인딩하려는 속성 목록 만 제공했다.) 시도했지만 작동하지 않았다. – Paddy

관련 문제