У меня есть простой список продуктов, продукты делятся на две разные категории и отображаются по-разному на странице в зависимости от их идентификатора категории.
Возможно ли вообще вложить DisplayTemplates одного и того же типа модели, например
//DisplayTemplates/Product.cshtml
@model MyNameSpace.Product
@if (Model.CategoryId == (int)ASixthSenseCore.CategoryId.GiftCards)
{
@Html.DisplayForModel("GiftCards")
}
else
{
@Html.DisplayForModel("Merchandise")
}
//DisplayTemplates/GiftCards.cshtml
@model MyNameSpace.Product
<div>I am a Gift Card</div>
//DisplayTemplates/Merchandise.cshtml
@model MyNameSpace.Product
<div>I am Merchandise</div>
//My View
@mode List<MyNameSpace.Product>
@Html.DisplayForModel()
Я пытался сделать это, и он не ломается, но он тоже не работает, шаблон продукта работает должным образом - я добавил отладочный текст, который правильно выводит для каждого соответствующегопункт в списке товаров.Я подозреваю, что в Механизме шаблонов есть какая-то блокирующая фраза, чтобы не допустить его исчезновения на собственной оборотной стороне с рекурсивными вызовами в тот же шаблон, являющийся возможностью этого сценария, сказав, что я подумаю, что это будет удобноспособ работы с несколькими DisplayTemplates для списков без необходимости повторять их с циклом foreach.