Пропустить анонимный тип как модель в MVC 3 Partial View

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

var model1 = new { Description = "description 1", Message = "message 1" }

и передавая их частичному представлению следующим образом:

@Html.Partial("_Partial", model1)

Затем частичный вид пытается отобразить определенные блоки на основе существования определенного свойства, то есть

@if (Model.Description != null) { @Model.Description }

Моя проблема в том, что, хотя я вижу и просматриваю объект Model в окне просмотра во время выполнения, я получаю RuntimeBinderException в тесте if, который указывает 'object' does not contain a definition for 'ShowApplied'. Я могу получить значения через отражение, вызвав (Model.GetType().GetProperty("ShowApplied").GetValue(Model)), но предпочел бы использовать формат, показанный в моем примере кода. Я не смог найти чистое решение...

  • Как передать анонимно типизированный объект в частичное представление и напрямую обращаться к его свойствам? Я чувствую, что есть что-то простое, что мне не хватает...
  • Почему я могу видеть свойства Model во время отладки, но не получить доступ к ним из кода?

EDIT

  • Я задаю динамику @model.
  • Использование интерфейса требует создания неанонимных типов, потому что, поскольку этот ответ объясняет,

Анонимный тип не может быть добавлен к любому интерфейсу или типу, кроме object.

Ответ 1

Взгляды из комментариев (спасибо) подразумевают, что у меня есть 2 варианта, поскольку (как указывает ответ на связанный вопрос),

Анонимные типы являются внутренними, поэтому их свойства не видны вне их определяющей сборки.

и поэтому недоступны для механизма привязки Razor.

  • Используйте @Html.DisplayFor("amount") и не используйте IntelliSense, ссылки и т.д.

  • Создавайте классы, которые реализуют общий интерфейс и связывают мое частичное представление с этим интерфейсом.