Я понимаю из различных других связанных с нами вопросов здесь и здесь, среди прочего, что вы не можете пройти анонимно набранные объекты из контроллера в представление, поскольку анонимные типы определяются с помощью внутреннего аксессора. Код View и Controller скомпилированы в разные сборки, поэтому попытка его использования приводит к этой ошибке...
Объектне содержит определения для 'foo'
Это прекрасно, и я могу согласиться с этим, хотя сначала это раздражало. Есть достаточно рекомендуемых обходных решений, чтобы успокоить меня.
Однако я думал, что вы все равно сможете передать анонимный тип из представления в частичный вид, потому что, будучи представлениями, они будут скомпилированы в одной сборке.
Razor Просмотреть код...
@Html.Partial("Partial1", new { foo = "Something", bar = "Something else" })
и код частичного просмотра для "Partial1"
@model dynamic
<h1>@Model.foo</h1>
<span>@Model.bar</span>
Странно, что этот WAS работает в начале разработки в новом проекте MVC, но поскольку я добавил больше просмотров, он просто перестал работать и теперь дал мне ту же ошибку, о которой я говорил выше.
Это как если бы я достиг порога, где вид и частичный вид больше не компилируются в одну и ту же сборку. Но я просто догадываюсь.
Интересно, может ли кто-нибудь пролить свет на это.