我最近将我的网站更新为 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 类型时,它指向我这里。这里要注意的是,当您将 Framework 版本更改为 4.0 时,它不会在 ControllerContext 上显示相同的属性。感觉有点奇怪。
我的假设是 .Net 4.5 & MVC 5.0 组合可能没有这种方法。
我的程序集绑定。
<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>