我最近将我的网站更新为 MVC 5。它在我的开发机器上运行良好。当我转向支持 .Net 4.0 的共享主机时,我的 MVC 4 站点运行良好。部署后我收到以下异常。
Method not found: 'System.Web.WebPages.IDisplayMode
System.Web.Mvc.ControllerContext.get_DisplayMode()'.
我尝试了一些方法来解决问题,但都没有帮助。
- 如果 DisplayMode 是仅在 MVC 5 中添加的属性,我检查了文档。我错了。它在 MVC 4 中也存在,正如在 msdn 文档中所检查的那样。
- MSDN 上的奇怪事情,当我检查 System.Web.Mvc.ControllerContext 类型时,它指向我 here .这里要注意的是,当您将 Framework 版本更改为 4.0 时,它不会在 ControllerContext 上显示相同的属性。感觉有点奇怪。
我的假设是 .Net 4.5 和 MVC 5.0 组合可能没有这种方法。
我的程序集绑定(bind)。
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
最佳答案
我在升级到 MVC 5 时遇到了同样的问题。
这已通过删除 Microsoft.Web.Mvc.FixedDisplayModes.dll 解决。 该 dll 是 MVC4 的旧遗留修复程序,在使用 MVC5 时可以安全地删除它。
我从这里得到了这个解决方案:http://larre.fixstar.net/2014/10/sitecore-mvc-error-idisplaymode/
关于c# - 升级到 MVC 5 的网站在 ControllerContext 上缺少 DisplayMode 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955262/