预定义类型System.Object未定义或未导入

17 浏览
0 Comments

预定义类型System.Object未定义或未导入

我在VS 2015的.cshtml文件中遇到了这个奇怪的错误。

当我用VS 2013打开项目时,错误不会出现。

以下是我的引用:




  False
  N:\XXX\Sitecore.Kernel.dll


  N:\XXX\Sitecore.Mvc.dll











  False
  N:\XXX\System.Web.Helpers.dll


  False
  N:\XXX\System.Web.Mvc.dll


  N:\XXX\System.Web.Providers.dll


  False
  N:\XXX\System.Web.Razor.dll


  False
  N:\XXX\System.Web.WebPages.dll


  False
  N:\XXX\System.Web.WebPages.Deployment.dll


  False
  N:\XXX\System.Web.WebPages.Razor.dll








这可能是什么原因?

请参考我提问的这个问题,它是同样的问题: The type or namespace name 'System' could not be found

0
0 Comments

问题的原因是在使用MVC 4和VS 2015时,CSHTML智能感知存在许多问题。解决方法是升级到MVC 5,并根据上述链接中的问题回答,MVC 4仍然可以工作,只是不完美。

然而,在升级到MVC 5后,出现了一个新的问题。当在CSHTML文件中使用一些预定义类型时,会出现错误消息"Predefined type System.Object is not defined or imported"。这个问题的原因是MVC 5的CSHTML视图模板默认使用的是Razor 3,而Razor 3不再支持预定义类型的引用。

解决这个问题的方法是在Web.config文件中添加以下配置:


  
  
    
      
      
      
      
    
  

上述配置将Razor 3的默认配置修改为使用MVC 5的配置,从而解决了"Predefined type System.Object is not defined or imported"的问题。

通过以上方法,我们可以解决在升级到MVC 5后出现的"Predefined type System.Object is not defined or imported"问题。这个问题的根源是Razor 3不再支持预定义类型的引用,因此我们需要修改配置以使用MVC 5的配置来解决这个问题。

0
0 Comments

问题原因:删除解决方案中所有项目的bin和obj文件夹对我有用。看起来这些文件夹中有一些由较早版本的Visual Studio生成的旧文件,这些文件与新版本的Visual Studio不兼容。

解决方法:删除解决方案中所有项目的bin和obj文件夹。

0
0 Comments

在VS 2013和VS 2015中存在的一个问题是,为了让.cshtml文件中的Razor智能提示能够正常工作,构建输出路径必须设置为默认构建路径。可以参考这篇优秀的文章来复现并讨论此问题以及替代方案。

因此,对于MVC项目,构建路径必须设置为bin\。如果需要将输出放在其他位置,必须创建一个后期构建步骤,将文件从bin\复制到另一个位置。

谢谢,这解决了我的问题。我有一个需要与另一个网站合并的网站,所以我已经重定向了bin路径。

0