我们的主站点是 ASP.net 4.5 并使用 Ektron (A .net CMS) 我正试图将其变成 MVC4 / Webforms 混合体。
据我所知,我已经正确安装了 MVC4 需要的所有东西,但是当我尝试点击默认的 Home 控制器时,我得到了经典的
[InvalidOperationException: The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/home/Index.aspx
~/Views/home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/home/Index.cshtml
~/Views/home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml]
我使用 NuGet 并通过从默认 MVC4 应用程序复制默认控制器、视图和关联的 App_Start 和 Global.asax 文件来安装 MVC4。我还安装了运行良好的 WebAPI(这告诉我路由似乎工作正常,即我可以转到 API/Values 并恢复默认值 api 数据就好了)。
该站点作为主站点安装,即不作为子站点或子应用程序安装。
我最初认为处理程序部分可能存在问题,因为 Ektron(我们的 CMS)添加了大量处理程序,但已将 web.config 撕裂,并且在那里找不到任何问题。我什至尝试用默认 MVC4 应用程序中的那个替换它,并得到了同样的错误。请注意,我确实必须更改默认 web.config 的一部分和我的自定义部分。
当我有这个部分时:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
</dependentAssembly>
我得到错误
Could not load file or assembly 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我查看了该 DLL 的程序集详细信息,发现它是 4.0.0.0 版本,所以我将那部分更改为
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
哪个修复了该错误,据我所知是可以的,但同样,我遇到了上述未找到视图的问题。
任何帮助将不胜感激。