2011-07-19 26 views
0

如果部分視圖基於基類,是否可以檢查它是否是後代類,如果是,可以在Html助手(LabelFor,EditorFor等)中使用descndant類的屬性?ASP.NET MVC Html Helpers可以使用後代類嗎?

@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的模型的後裔,那麼我看不到爲什麼不。您提供的代碼應該可以工作。

+0

它不起作用,因爲它是一個lambda,因此'car'是賦予父'Model'類對象的名稱。 – John

相關問題