Вы не потеряете ни одну из существующих функциональных возможностей. Вы по-прежнему можете иметь строго типизированное представление, так что при доступе к свойству Model
оно будет иметь указанный вами тип. Единственное, что добавлено, - это более короткий способ доступа к элементам в словаре ViewData.
Вместо следующего
ViewData["MyData"]
вы можете иметь
View.MyData
Обратите внимание, что вы не теряете безопасность типов, потому что у вас ее никогда не было. В первом случае ключ является строкой (нет уверенности в том, что он существует в словаре), а значение является объектом, поэтому если вы не приведете его, вы не сможете сделать с ним ничего особенного. В последнем случае вы также не получаете intellisense, и возвращаемое значение должно быть приведено к чему-то полезному.
Фактически реализация View.MyData
просто берет имя свойства («MyData») и возвращает значение, поступающее из словаря ViewData.
Возможно, единственное, что вы потеряете, - это возможность иметь пробелы или другие символы, которые не являются допустимыми идентификаторами C # в именах ваших ключей.