Я несколько (6 месяцев) новичок в MVC, и мне нравится использовать как можно меньше кода, особенно когда речь идет о повторно используемом коде и т. д. Я использую Umbraco v7.2, и у меня есть (3) вкладки , все из которых используют один и тот же тип данных (пользовательская сетка v7).
Сетка имеет (4) поля. В основном все (3) разделы на моей странице одинаковы, за исключением заголовка и вызываемого объекта (динамический объект — это то, что имеет в них свойства для вкладки, которые, как я уже говорил ранее, одинаковы) .
Как я могу вызвать частичное представление и повторно использовать один и тот же код? «Foreach» — это место, где мне нужно вызвать это частичное представление, поскольку вы можете видеть, что оно использует тот же точный код с исключением повторяемого объекта.
"CurrentPage.XXXX" - это то, что мне нужно передать, и у меня может быть тот же итератор
@foreach(var XXXX in CurrentPage.XXXX) <---- partial view
Вид:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Master.cshtml";
}
<article class="accordion-wrapper">
<div class="accordion-container accordion-contact">
<a href="javascript:void(0);" class="mont-bold accordion">Leadership Team</a>
@foreach (var leadership in CurrentPage.leadershipTeam)
{
<section class="clearfix">
<div class="col-md-6 col-sm-6">
<ul>
<li>@leadership.contactName</li>
<li>@leadership.contactTitle</li>
</ul>
</div>
<aside class="col-md-6 col-sm-6">
<ul>
<li>@leadership.contactPhone</li>
<li>
<a href="mailto:@leadership.contactEmail">@leadership.contactEmail</a>
</li>
</ul>
</aside>
</section>
}
</div>
</article>
<article class="accordion-wrapper">
<div class="accordion-container accordion-contact">
<a href="javascript:void(0);" class="mont-bold accordion">The Lenders One Team</a>
@foreach (var lenders in CurrentPage.lendersTeam)
{
<section class="clearfix">
<div class="col-md-6 col-sm-6">
<ul>
<li>@lenders.contactName</li>
<li>@lenders.contactTitle</li>
</ul>
</div>
<aside class="col-md-6 col-sm-6">
<ul>
<li>@lenders.contactPhone</li>
<li>
<a href="mailto:@lenders.contactEmail">@lenders.contactEmail</a>
</li>
</ul>
</aside>
</section>
}
</div>
</article>
.... another one here but omitted for brevity
И превратить его в:
<article class="accordion-wrapper">
<div class="accordion-container accordion-contact">
<a href="javascript:void(0);" class="mont-bold accordion">Leadership Team</a>
@Html.Partial( ?????? )
</div>
</article>
<article class="accordion-wrapper">
<div class="accordion-container accordion-contact">
<a href="javascript:void(0);" class="mont-bold accordion">The Lenders One Team</a>
@Html.Partial( ?????? )
</div>
</article>
Частичное ???
@foreach (var contact in ??????)
{
<section class="clearfix">
<div class="col-md-6 col-sm-6">
<ul>
<li>@contact.contactName</li>
<li>@contact.contactTitle</li>
</ul>
</div>
<aside class="col-md-6 col-sm-6">
<ul>
<li>@contact.contactPhone</li>
<li>
<a href="mailto:@contact.contactEmail">@contact.contactEmail</a>
</li>
</ul>
</aside>
</section>
}
Ценить это ;)
ИЗМЕНИТЬ:
Чтобы уточнить, я использовал частичные представления раньше в Umbraco. Вышеупомянутая проблема заключается в том, что у меня есть (3) разные объекты (сетки в u7 а>). Как работает сетка в Umbraco, вы создаете новый тип данных и определяете определенные поля в этом типе данных (текстовое поле, средство выбора мультимедиа и т. д.). Затем вы можете добавить свойства к типам документов (в этом случае я использовал созданную мной пользовательскую сетку). После создания страницы на основе типа документа свойства наследуются.
Для страницы контактов мне понадобилось (3) отдельные сетки. Однако каждая сетка содержит разные данные. Следовательно, это (3) разных объекта JSON, которые я повторяю. В приведенном выше коде (3) объекта JSON:
- команда руководителей
- кредиторыКоманда
- avisoryBoard (тот, что опущен для краткости)
Как я могу передать (CurrentPage.JSONobjectHere) в частичное представление, используя только ОДНО частичное представление для всех ТРЕХ разделов?