Как получить доступ к анонимно типизированному объекту, переданному в частичный вид?

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

Views\Home\PageWithPartialView.cshtml

@Html.Partial("DynamicPartialView", new { paramFromPageToPartialView = "value" })

Views\Shared\DynamicPartialView.cshtml

@model dynamic // Doesn't make a difference

@{
    // This is where I need to access and display the parameters 
    // passed from the main page

    // Throws RuntimeBinderException
    // Cannot apply indexing with [] to an expression of type 'object'
    var try1 = Model["paramFromPageToPartialView"];

    // Throws RuntimeBinderException
    // 'object' does not contain a definition for 'paramFromPageToPartialView'
    var try2 = Model.paramFromPageToPartialView;
}

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

Ответ 1

ViewBag предназначен для решения этой проблемы. Вместо того, чтобы потреблять paramFromPageToPartialView в частичном из Модели, потребляйте его из ViewBag:

Views\Home\PageWithPartialView.cshtml

@{ViewBag.paramFromPageToPartialView = "value";}
@Html.Partial("DynamicPartialView")

Views\Shared\DynamicPartialView.cshtml

@model dynamic // Doesn't make a difference

@{
    var try3 = ViewBag.paramFromPageToPartialView;
}