자식 _DetailsViewModel의 인스턴스를 포함하는 OrderViewModel이 있습니다. OrderViewModel에는 주문 헤더 정보가 있고 _DetailsViewModel에는 주문 세부 정보가 있습니다. 별도의 모델 임에도 불구하고 둘 모두 동일한 단일 데이터 소스 인 Orders 테이블을 가지고 있습니다. 세부 사항이 자체 View Model에있는 이유는 동일한 시각적 배열로 해당 필드가 다른 View에서 재사용된다는 것입니다. 따라서 Partial View에 다시 배치하여 필요에 따라 재사용 할 수 있습니다. 내가 Orders 테이블에서 모든 데이터를 반환하고 주문 엔티티의 목록을 반환하는 서비스를 호출 내 컨트롤러 내에서MVC 4에서 하위 모델을로드하는 중 문제가 발생했습니다.
public class OrderViewModel
{
public string OrderNum { get; set; }
public string CustonerName{ get; set; }
public double SalesPrice{ get; set; }
public _Details Details { get; set; }
}
public class _DetailsViewModel
{
public string PhoneNum { get; set; }
public string ItemNum { get; set; }
public double Quantity { get; set; }
public string PayMethod{ get; set; }
public string Comments { get; set; }
}
: 여기 내 주와 자식보기 모델의 생각이다.
orderService = new OrderService();
var orders = orderService.GetOrderInfo(StoreNum);
거기에서 Omu.ValueInjecter를 사용하여 결과를 기본 View Model에 주입합니다.
var orderViewModel = orders
.Select(x => new
OrderViewModel().InjectFrom(x)).Cast<OrderViewModel>()
.ToList();
return View(orderViewModel);
나는 아래처럼 ... 내 주요 주문보기 내에서 부분보기에 전달할 수 있도록 나는 또한 _Details 모델을 채울 필요가
:
@ Html.Partial ("_ OrderDetails의를" Model._Details)
이미 주 주문 모델을 채우고있는 단일 서비스 호출에서 _Details 모델을 채우는 방법이 있습니까? 주 Order View에 _Details 속성을 추가 한 다음 Order 뷰를 반복하여 해당 _Details Model의 각 필드를 수동으로 설정해야합니까? 확실하게 나는 뭔가를 놓치고있다.
감사합니다 ...
감사합니다. 나중에 orderViewModel에 detailsModel을 추가하여 Order View로 전달하려면 어떻게해야합니까? orderViewModel.Details = detailsModel ??? 또는 각 주문에 대한 세부 정보를 추가하려면 반복해야합니까? 몇 가지 샘플 코드를 보여 주면 크게 감사하겠습니다. – user2167861
'OrderViewModel'의 속성은 다음과 같아야합니다 :'public _DetailsViewModel Details {get; 세트; }'? –
예, 그렇습니다. 실제로 이것은 오타였습니다. 내 실제 코드에서 _DetailsViewModel로 설정됩니다. – user2167861