0

아래의 객체를 View (cshtml)에 전달하면 모든 것이 제대로 작동합니다. 그러나 (Submit 버튼을 클릭 한 후) ViewModel 객체를 ActionResult 컨트롤러로 가져 오면 임베디드 OrderItems 객체는 항상 null입니다. ASP.NET MVC의 예상되는 동작입니까?ASP.NET MVC - 제출 버튼은 목록 항목 인 포함 된 객체에 null을 반환합니다.

public class OrderViewModel 
{ 
    public int? OrdersId    { get; set; } 
    public List<OrderItemViewModel> OrderItems { get; set; } 
} 
+0

이 코드를 디버그하는 데 도움이되는 컨트롤러와보기 코드가 필요합니다. –

답변

0

예, 이것은 예상되는 동작입니다. OrderItems가 널 (NULL)이 F 닌 유일한 f}은 OrderItemViewModel의 구조와 일치하도록 이름 지정된 데이터 세트를 게시하고 최상위 이름이 OrderItems 인 경우입니다.

아무 것도 보내지 않으면 null이 표시됩니다. 본질적으로 모델 바인더는 클래스의 기본 생성자를 호출하므로 예상되는 동작은 new OrderViewModel()을 사용한 다음 OrdersId를 할당하는 것과 동일해야합니다. 이 시나리오에서는 OrderItems이 null입니다.

+0

어떻게 해결할 수 있습니까? –