Я не могу получить доступ к свойствам динамического объекта в шаблоне Razor - PullRequest
5 голосов
/ 06 сентября 2011

Я создал динамический объект, как показано ниже:

dynamic myObject = new
{
    DisplayName = "Mahesh"
}; 



Content = Parse("Main", myObject);

debug section

Тогда я разобрал его по шаблону Razor. Но это не работает, потому что объект не может получить доступ к своим свойствам. В чем здесь проблема?

Заранее спасибо,

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Я сделал это таким образом, и это работает. Но я хочу знать, почему первый способ не работает

dynamic FooterModel = new ExpandoObject();
FooterModel.DisplayName= "Kaplan";
2 голосов
/ 06 сентября 2011

У анонимного типа есть некоторые проблемы с доступностью, в которых dynamic через провайдера c # пытается уважать доступность. Анонимный тип в другом модуле не доступен (и помните, что страницы MVC обычно компилируются в другой модуль), следовательно, нет свойств.

IIRC, однако, это на самом деле исправлено в более позднем патче MVC - я, кажется, помню, что ударил его, когда моя локальная машина была на оборотах выше, чем наш dev-сервер, что означало: она работала локально на более высокой ревизии, но не см Вы описываете на dev-сервере.

ExpandoObject не страдает от этого, потому что он не использует провайдера c # (вместо него реализуется IDynamicMetaObjectProvider) и не имеет понятия доступности (он просто отображает имена членов в словарь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...