Использование модели представления в частичном представлении, определенном в макете - PullRequest
1 голос
/ 24 января 2012

Это все гипотетически, и интересно, как и если это возможно.

У меня есть два разных строго типизированных представления, которые используют две разные модели.Например, у меня есть View1.cshtml и View2.cshtml.У каждого своя модель: View1Model.cs и View2Model.cs.Каждая из страниц просмотра использует общий макет (_Layout.cshtml), который имеет PartialView (_WhoAmI.cshtml).

В View1Model.cs есть поле UserID (с различными другими полями) и View2Model.cs также содержит тот же идентификатор пользователя (с полями, отличными от View1Model.cs).

При частичном просмотре будет выполнен поиск идентификатора пользователя и отображение информации о пользователе на небольшом экране .DIV.

Что такоелучший способ сделать это и сохранить строгий тип PartialView?Возможно ли даже, когда обе модели представления настолько отличаются (кроме UserID)?Если это так, если я снова использую этот PartialView в _Layout, как я не позволю ему выполнить поиск пользователя два раза на странице Layout при каждом вызове партиала?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 24 января 2012

Вместо Html.Partial вы можете использовать Html.Action и иметь дочернее действие, отрисовывающее частичное и выполняющее необходимые поиски.

0 голосов
/ 24 января 2012

Я предполагаю, что если частичное представление имеет модель типа dynamic, то то, что вы спрашиваете, возможно, но я не пробовал это сам.По крайней мере MSDN говорит о том, что переменные dynamic обходят статическую проверку типов, а во время выполнения они проверяются только на наличие определенных методов, которые были вызваны из кода.

...