Могут ли ASP.NET MVC Html Helpers работать с классами-потомками? - PullRequest
0 голосов
/ 19 июля 2011

Если частичное представление основано на базовом классе, можно ли проверить, является ли оно классом-потомком, и если да, использовать свойства класса-потомка в помощниках HTML (LabelFor, EditorFor и т. Д.)?

@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)
    }
}

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Да, это возможно; попробуй это ...

Модельные классы

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

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

View

@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 голосов
/ 19 июля 2011

Если ваш вопрос заключается в том, можете ли вы использовать потомков моделей с @Html, то я не вижу причин, почему бы и нет.Код, который вы предоставляете, должен работать.

...