У меня есть простой список продуктов, продукты делятся на две разные категории и отображаются на странице по-разному в зависимости от идентификатора их категории.
Возможно ли вообще вложить 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.