我在一个项目(我的网络项目)中有一个MVC视图。我试图指定它应该从另一个项目中的类(模型)继承,但是我的视图看不到该类。模型类的项目位于视图所在的项目的引用中。为什么我的视图看不到模型类?以下是整个视图:
<%@ Page Title="Title"
Language="C#"
Inherits="System.Web.Mvc.ViewPage<Models.PropertyDetailsModel>"
MasterPageFile="../MvcMasterPage.Master" %>
Models.PropertyDetailsModel以红色高亮显示,当我将鼠标悬停在它上面时,它表示它无法解析符号PropertyDetailsModel。
想法?
答案 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]"
古怪!