Это может быть спорным, если это хорошая идея для шаблонирования сложных объектов, или если мой подход к вложенным шаблонам взломать или нет.Преимуществом этого является наличие одного шаблона для родительского и дочернего, которые могут иметь шаблоны вместо того, чтобы выбирать / использовать частичные представления.
Все это, кроме того, шаблонные представления могут быть вложенными, если Вы используете частичное представление в качестве посредника.
Внешний шаблон будет иметь что-то вроде ниже, где вы хотите разместить внутренний шаблон:
Html.RenderPartial("SharedDisplayGoBetweenForFoo", item);
Общая часть будет выглядеть так:
@model Foo
@Html.DisplayFor(a => a);
внутренний шаблон будет вызываться и будет выглядеть как любой другой.
Таким образом, ваш пример будет выглядеть как
Cheese.cshtml:
@model Application.Data.Models.Cheese
@{
var product = (Application.Data.Models.Part)Model;
}
Base Product Fields:
@Html.DisplayFor(x => products, "Product") @* no effect! *@
<div class="field">
<div class="display-label">@Html.LabelFor(m => m.UniqueProperty)</div>
<div class="display-field">@Html.RenderPartial("SharedPartialProductGobetween", Model.UniqueProperty)</div>
</div>
SharedPartialProductGobetween.cshtml:
@model Product
@Html.DisplayFor(a => a);
Ваш шаблон продукта не изменится.