Передача анонимных объектов из представления в частичное представление

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

объект не содержит определения для 'foo'

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

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

Код Razor View ...

@Html.Partial("Partial1", new { foo = "Something", bar = "Something else" })

и код частичного просмотра для «Partial1»

@model dynamic 

@Model.foo

@Model.bar

Странно то, что это БЫЛО работало в начале разработки нового проекта MVC, но когда я добавил больше считает, что он просто перестал работать, и теперь выдает ту же ошибку, о которой я упоминал выше.

Это как если бы я достиг порога, когда представление и частичное представление больше не компилируются в одну и ту же сборку. Но я просто догадываюсь.

Интересно, может ли кто-нибудь пролить свет на это.

18
задан Community 23 May 2017 в 11:45
поделиться