c# - 升级到 MVC 5 的网站在 ControllerContext 上缺少 DisplayMode 属性

标签 c# asp.net-mvc .net-4.0 .net-4.5 asp.net-mvc-5

我最近将我的网站更新为 MVC 5。它在我的开发机器上运行良好。当我转向支持 .Net 4.0 的共享主机时,我的 MVC 4 站点运行良好。部署后我收到以下异常。

 Method not found: 'System.Web.WebPages.IDisplayMode
 System.Web.Mvc.ControllerContext.get_DisplayMode()'.

我尝试了一些方法来解决问题,但都没有帮助。

  1. 如果 DisplayMode 是仅在 MVC 5 中添加的属性,我检查了文档。我错了。它在 MVC 4 中也存在,正如在 msdn 文档中所检查的那样。
  2. 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/

相关文章:

c# - 如何使用 reflection.emit 发出显式接口(interface)实现?

c# - 排队异步代码以顺序执行

C#读取文件并写出替换字符串

asp.net-mvc - 将我的 asp.net mvc 发布到 IIS 生产服务器。我应该使用 Visual Studio 来执行此操作吗

asp.net-mvc - 基于@RenderBody Controller 的动态内容?

.net-4.0 - 微软图表堆积柱形图有差距

c# - LINQ 中的匿名类型

c# - 如何从列表中获取特定范围(3 - 7)内的项目?

c# - 有选择地将要绑定(bind)的模型字段列入白名单

c# - 缺少 EqualityComparer?