Обновление 1: Обратите внимание, что вы можете быть совершенно уверены, что нет проблем с загрузкой / получением типов System.Web.Mvc.ViewPage или project .lib.models.Person . Как вы упомянули в своем вопросе, он работает, когда вы используете:
<% @Import Namespace="project.lib.models" %>
...
<%= (Model as Person).Name %>
Использование System.Web.Mvc.ViewPage<project.lib.models.Person>
в директиве страницы и <%= Model.Name %>
должно работать. Некоторые дополнительные вещи, которые я бы попробовал, если это не сработало:
- При этом удалите директиву import.
- Проверьте, добавлено ли это пространство имен в web.config.
Хотя ни один из этих 2 выше не должен вызывать каких-либо проблем, если вы не заставите его работать с тем, что упоминалось ранее, это будет очень странный сценарий. Также обратите внимание, что если вы добавили часто используемые пространства имен в web.config, вы можете использовать ViewPage<Person>
в директиве page.
Model.Name , на которое вы ссылаетесь, не имеет отношения к импорту пространства имен, вы получаете его из типа, который вы указали в директиве page.
Класс ViewPage имеет свойство T Model, поэтому вы получаете доступ к свойству Name (вы работаете с указанным вами типом).