2011-07-19 8 views
0

部分的なビューが基本クラスに基づいている場合、それが子孫クラスであるかどうかを確認できますか?そうであれば、Htmlヘルパー(LabelFor、EditorForなど)内のdescndantクラスのプロパティを使用しますか?ASP.NET MVC Htmlヘルパーは子孫クラスで動作できますか?

@model ProjectX.Models.VehicleModel 

<div> 
    @Html.LabelFor(model => model.Fuel) 
    @Html.TextBoxFor(model => model.Fuel) 
</div> 

@{ 
    if (Model is CarModel) 
    { 
     CarModel car = (CarModel)Model; 

     @Html.LabelFor(car => car.Doors) 
     @Html.TextBoxFor(car => car.Doors) 
    } 
} 
+0

モデルは、ビューではなく、子孫であるかどうかを確認することは重要ですか? –

答えて

1

はい可能です。これを試して...

モデルクラス

namespace MvcApplication2.Models 
{ 
    public class Vehicle 
    { 
     public string Fuel { get; set; } 
    } 

    public class Car : Vehicle 
    { 
     public int Doors { get; set; } 
    } 
} 

ビュー

@model MvcApplication2.Models.Vehicle 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 


<div> 
    @Html.LabelFor(model => model.Fuel) 
    @Html.TextBoxFor(model => model.Fuel) 
</div> 

@{ 
    if (Model is MvcApplication2.Models.Car) 
    { 
     @Html.LabelFor(model => ((MvcApplication2.Models.Car)model).Doors) 
     @Html.TextBoxFor(model => ((MvcApplication2.Models.Car)model).Doors) 
    } 
} 

・ホープ、このことができます。

+0

ありがとうございます - それは素晴らしいです! – John

0

@HtmlでModelsの子孫を使用できるかどうかという質問がある場合は、理由はありません。あなたが提供するコードは動作するはずです。

+0

ラムダであるため動作しません。したがって、 'car'は親の 'Model'クラスオブジェクトに与えられた名前です。 – John

関連する問題