2012-05-06 2 views
0

엔티티 Car에서 벗어난 엔티티 모델과 Car에서 상속 한 엔티티 2 개 (SportsCar, Truck)가 있다고 가정합니다.보기에서 상속을 사용하여 엔티티 모델을 처리하는 방법은 무엇입니까?

내 사이트에서 SportsCars 및 트럭을 섞어서 자동차 목록을 표시하고 각 자동차의 고유 한 기능을 표시하고 싶습니다.

내 컨트롤러에서 내 모델에서 모든 자동차를 검색하여보기로 보냅니다.

내보기에서 자동차가 SportsCar 또는 트럭인지 확인하는 논리를 어떻게 만들 수 있습니까?

답변

0

디스플레이 템플릿을 사용할 수 있습니다. 예를 들어 봅시다.

모델 :

public class Car 
{ 
    public string CommonProperty { get; set; } 
} 

public class SportCar : Car 
{ 
    public string CarSpecificProperty { get; set; } 
} 

public class Truck: Car 
{ 
    public string TruckSpecificProperty { get; set; } 
} 

컨트롤러 :

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new Car[] 
     { 
      new SportCar { CommonProperty = "sports car common", CarSpecificProperty = "car specific" }, 
      new Truck { CommonProperty = "truck common", TruckSpecificProperty = "truck specific" }, 
     }; 
    } 
} 

보기 (~/Views/Home/Index.cshtml) : 스포츠 자동차에 대한

@model Car[] 

@for (int i = 0; i < Model.Length; i++) 
{ 
    <div> 
     @Html.DisplayFor(x => x[i].CommonProperty) 
     @Html.DisplayFor(x => x[i]) 
    </div> 
} 

디스플레이 템플릿 (~/Views/Home/DisplayTemplates/SportCar.cshtml) :

트럭에 대한

디스플레이 템플릿 (~/Views/Home/DisplayTemplates/Truck.cshtml) : 답안에 대한

@model Truck 
@Html.DisplayFor(x => x.TruckSpecificProperty) 
+0

감사합니다! 나는 그것을 시도 할 것이다! – Ron83

관련 문제