nrpklpr Ответов: 0

Как передать модель в условный partialview, имеющий отдельную модель для каждого представления?


Я привязываю один частичный вид (из 3 видов) к основному виду.
Основной вид, имеющий модель, плотно привязанную к нему.
Какой частичный вид будет привязан, решается методом get контроллера в соответствии с условиями.
Либо он связывает один из трех видов, либо не связывает ни одного.
Из контроллера я возвращаю основной вид с его моделью и строкой, имеющей частичный путь представления.
Если строка имеет значение, то есть путь частичного представления, то она связывает это представление.

@if (strPartialPage != null && strPartialPage != "")
     {
         @Html.Partial(strPartialPage)
     }


Каждое частичное представление имеет отдельные модели, тесно связанные с этим представлением.

Как передать модель в частичное представление?

Что я уже пробовал:

Во-первых, я не привязывал модель к основному виду.
Я использовал "кортеж", чтобы передать обе модели (одну для основного вида и другую для частичного вида) из контроллера и плотно привязать его к частичному виду.

Но у него есть недостаток, что мне приходится каждый раз связывать частичное представление для условия, в котором оно мне не нужно.

F-ES Sitecore

Я не совсем понимаю ваш вопрос, но вы передаете конкретную модель частичному представлению, как это

@Html.Partial(strPartialPage, yourModelHere)

nrpklpr

@Html.Partial(strPartialPage, yourModelHere)

Я связываю одно из трех частичных представлений. Имя частичного представления определяется во время выполнения в соответствии с условием. Каждый частичный вид имеет свой собственный класс модели.

Теперь я отправляю частичное имя представления через переменную "strPartialPage".
Но как я могу привязать модель к "yourModelHere"???

F-ES Sitecore

"yourModelHere" - это просто любая переменная, указывающая на ваш объект модели. У вас должно быть какое-то условие, которое вы используете, чтобы диктовать, какой вид использовать, поэтому расширьте его для модели

объектная модель;
если (someSomdition)
{
имя_представления = "один.cshtml по";
модель = новая OneModel();
}
еще
{
имя_представления = "две.cshtml по";
модель = новая Двухмодель();
}

@HTML-код.Частичное(имя_представления, модель)

0 Ответов