частичный вид внутри частичный вид --- условно - PullRequest
1 голос
/ 22 августа 2011

Я портирую приложение веб-форм на MVC3

У меня есть частичное представление внутри частичного представления, и внутреннее частичное представление отображается на основе содержимого из модели родительского представления.

Родительское частичное представление имеет эту модель

@ModelType List(Of Integer)

, а затем эти строки для добавления нескольких экземпляров частичного представления на одной странице.

<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>
<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>
<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>

Этот div повторяется четырераз с четырьмя значениями List(Of Integer).То есть, если первый индекс содержит большее значение, чем 100, он должен отображать первый div выше и так далее ...

ОБНОВЛЕНИЕ: Предполагается, что к внутренним частичным элементам управления обращаютсяиз базы данных на основе идентификатора из индекса списка.

Я создал функции в DAL (который является отдельной DLL), и теперь остается только вызов функции.

В веб-формах внутренние пользовательские элементы управления были связаны следующим образом:

ArtBlock1.Artikel = DataService.Artikel_GetByID(oList(0))

Кто-нибудь может мне помочь, что сделать, чтобы достичь этого?

1 Ответ

1 голос
/ 22 августа 2011

Если ваша родительская часть набрана @ModelType List(Of Integer), то выполните итерацию по модели, чтобы распечатать элементы div.Примерно так (извините за синтаксические ошибки, если таковые имеются, я использую C #, похоже, что вы используете VB)

@foreach(var value in Model)
{
    <div style="width: 25%; vertical-align: bottom; float: left; clear: left">
        @Html.Partial("ArtBlock", value)
    </div>
}

Я считаю, что вы хотите проверить value, чтобы вы могли добавить if там.1006 *

Обновление: Итак, если ваш DataService.Artikel_GetByID(oList(0)) вернет Artikel, ваш родительский фрагмент будет набран @ModelType List(Of Artikel).Используйте тот же цикл, что и выше, но теперь ваш дочерний партиал набирается @ModelType Artikel.Ваш частичный метод действия будет return PartialView(artikelList, "nameOfPartial")

...