Как получить доступ к объекту с анонимным типом, переданному в частичное представление? - PullRequest
2 голосов
/ 23 февраля 2012

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

@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 Ответ

3 голосов
/ 23 февраля 2012

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...