MVC view не видит модель в отдельном проекте - PullRequest
1 голос
/ 12 января 2012

У меня есть вид MVC в одном проекте (мой веб-проект). Я пытаюсь указать, что он должен наследоваться от класса (модели) в другом проекте, но этот класс не виден моему мнению. Проект класса модели находится в списке ссылок проекта, в котором находится представление. Почему мой взгляд не видит модель класса? Вот мнение полностью:

<%@ Page Title="Title" 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<Models.PropertyDetailsModel>"
    MasterPageFile="../MvcMasterPage.Master" %>

Models.PropertyDetailsModel подсвечивается красным цветом, и когда я наводю на него курсор, он говорит, что не может разрешить символ PropertyDetailsModel.

Идеи

Ответы [ 2 ]

4 голосов
/ 12 января 2012

В вашем ~/web.config убедитесь, что в разделе <assemblies> имеется сборка, содержащая эту модель:

<assemblies>
    ...
    <add assembly="TheAssemblyContainingYourModel" />
</assemblies>

Затем запустите проект, чтобы увидеть, работает ли он. Не обращайте внимания на красные загогулины. Visual IntelliSense в представлениях нельзя доверять.

P.S: в ~/web.config есть также секция <namespaces>, в которую можно поместить пространство имен, содержащее вашу модель, которая будет СУШИТЬ ваши виды:

<pages>
    <namespaces>
        <add namespace="TheNamespaceContainingYourModel" />
    </namespaces>
</pages>

и затем во всех ваших представлениях во всем приложении вы можете напрямую ссылаться на модели без необходимости их полной квалификации:

<%@ Page Title="Title" 
    Language="C#" 
    Inherits="ViewPage<PropertyDetailsModel>"
    MasterPageFile="../MvcMasterPage.Master" %>
0 голосов
/ 12 января 2012

На самом деле все, что мне нужно было сделать, это изменить это:

Inherits="System.Web.Mvc.ViewPage<Models.PropertyDetailsModel>"

на это:

Inherits="System.Web.Mvc.ViewPage`1[Models.PropertyDetailsModel]"

Дурацкий!

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