升级 ASP.NET MVC 版本后出现此问题。
'System.Web.Mvc.ViewPage' 类型不明确:它可能来自程序集......
我看到您已经为自己提供了答案,但另一种解决方案是使用<runtime>
重定向依赖程序集并指向正确程序集的元素更新您的 web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
请注意,对于大多数程序集,从 NuGet 更新您的项目会自动为您执行相同的操作。
在解决方案资源管理器中,单击参考 > System.Web.Mvc。单击属性并设置 Copy Local = True。
这样,您将确保在您的项目中获得正确版本的 MVC,而不依赖于 GAC 中安装的任何版本。此方法还使您能够对 MVC DLL 进行二进制部署。
这为我解决了问题......
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Routing" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>