我在我们的网站上遇到了 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 参考?