MVC视图无法在单独的项目中看到模型

时间:2012-01-11 21:10:12

标签: asp.net-mvc-3

我在一个项目(我的网络项目)中有一个MVC视图。我试图指定它应该从另一个项目中的类(模型)继承,但是我的视图看不到该类。模型类的项目位于视图所在的项目的引用中。为什么我的视图看不到模型类?以下是整个视图:

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

Models.PropertyDetailsModel以红色高亮显示,当我将鼠标悬停在它上面时,它表示它无法解析符号PropertyDetailsModel。

想法?

2 个答案:

答案 0 :(得分:4)

~/web.config中,确保在<assemblies>部分中您拥有包含此模型的程序集:

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

然后运行项目以查看它是否有效。不要注意红色的波浪形。视图中的Visual Studio Intellisense不可信任。

P.S:在~/web.config中还有一个<namespaces>部分,您可以在其中放置包含您的模型的命名空间,这样会干掉您的观点:

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

然后在整个应用程序的所有视图中,您可以直接引用模型而无需完全限定它们:

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

答案 1 :(得分:0)

实际上,我所要做的就是改变这一点:

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

到此:

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

古怪!