我有一个MVC 3项目。它工作得很完美,每次我做它,它都成功了。然而,Visual Studio坚持在每个razor语法的视图中显示编译错误。例如:
名称"model"在当前上下文中不存在D:…Detail.cshtml
这行很简单:
@model Namespace.DetailViewModel
我已经试过了:
- 洗涤液
- 清理
bin
和obj
文件夹。 - 关闭VS并重新打开它(即使在中间重启)。
注意:我使用的是Visual Studio 2012。
我解决了!
这个项目是在电脑还没有安装MVC 4的时候创建的。在安装它之后,由于某种原因,它一直工作(尽管如此)。
所以我所做的就是在安装MVC 4后在MVC 3项目中进行更改:见这里
编译后错误消失,但部分库(System.Web.WebPages
、System.Web.WebPages.Razor
等)版本出现错误。这是因为他们将Copy Local
设置为True
。
打开你的网页。配置文件位于Views文件夹内,如果缺少此部分,则添加此部分:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>