我的网站上的mvc视图一直存在问题,其中视图似乎没有检测到模型类型。我会收到一条错误消息,比如“模型在当前上下文中不存在。”,并且我会在模型下面得到一条红线。它也不会检测模型中的类,并会尝试在Html帮助程序下面放置一个错误行。但是,当我构建项目并运行它时,它工作正常。我已经尝试了很多关于Stack Overflow的建议,大多数都涉及对配置文件的更改,但是没有任何作用。这是我在web.config的system.web部分中的内容:
<customErrors mode="On" defaultRedirect="~/Error/ShowError">
<siteMap defaultProvider="AgilitySiteMapProvider">
<providers>
<add name="AgilitySiteMapProvider" type="Agility.Web.Providers.AgilitySiteMapProvider, Agility.Web" />
</providers>
</siteMap>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Agility.Web" />
<add namespace="Agility.Web.Mvc" />
<add namespace="CineplexWebsite.Helpers" />
</namespaces>
<controls>
<add tagPrefix="Agility" assembly="Agility.Web" namespace="Agility.Web.Controls" />
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="None">
</authentication>
以下是我在视图中的内容web.config
<system.web>
<customErrors mode="On" defaultRedirect="~/Error/ShowError">
<siteMap defaultProvider="AgilitySiteMapProvider">
<providers>
<add name="AgilitySiteMapProvider" type="Agility.Web.Providers.AgilitySiteMapProvider, Agility.Web" />
</providers>
</siteMap>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Agility.Web" />
<add namespace="Agility.Web.Mvc" />
<add namespace="CineplexWebsite.Helpers" />
</namespaces>
<controls>
<add tagPrefix="Agility" assembly="Agility.Web" namespace="Agility.Web.Controls" />
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="None">
</authentication>
知道造成这种情况的原因是什么?我错过了dll参考吗?
答案 0 :(得分:2)
在您的项目中有2个web.config
个文件:
您应该将<add namespace="CineplexWebsite.Helpers" />
模型命名空间添加到Views文件夹中的配置文件中。通常,它不会重新定位。再次关闭并打开项目,然后它将重新定位。