Безопасно ли передавать анонимный тип в MVC ViewData.Model? - PullRequest
1 голос
/ 29 декабря 2008

Можно ли делать следующее:

View(new {Object A, Object B})

Или объект A и объект B должны быть явно объявлены в новом типе?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 30 декабря 2008

Да, это нормально. Чтобы получить значения, вы можете использовать ViewData.Eval ("PropertyName"), и существующие Html-помощники будут отлично с ними работать. Единственное, что вы не сможете сделать, это получить строго типизированный доступ к свойствам, используя <% = ViewData.Model.PropertyName%>

2 голосов
/ 29 декабря 2008

Передавая анонимные типы, вы не можете иметь строго типизированные представления. Вам также нужно будет использовать отражение в ваших юнит-тестах.

2 голосов
/ 29 декабря 2008

Хотя анонимные типы универсальны для многих целей MVC, в этом случае я бы использовал обычный именованный класс или толчок словарь (или встроенный). В противном случае вам придется использовать отражение / TypeDescriptor, чтобы снова вывести значения.

1 голос
/ 29 декабря 2008

Полагаю, вы хотите хотя бы дать им имена:

var model = new 
{
    ObjectA = new A(),
    ObjectB = new B(),
};


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