我正在尝试在新安装的 Visual Studio Express 2012 RC 中打开 MVC3 解决方案。到目前为止,我遇到了一些问题,由于某种原因 VS2012 不知道这些项目是 MVC 项目,所以它不会添加视图/控制器。通过将以下 GUID 添加到解决方案中每个项目ProjectTypeGuids
的文件节点来解决此问题:.csproj
{E53F8FEA-EAE0-44A6-8774-FFD645390401}
但是,当我打开剃刀视图时,它会显示以下错误(以及其他相关错误):
Error 20 The name 'model' does not exist in the current context c:\Users\willem\Documents\Visual Studio 2010\Projects\000-Orchard Development\src\Orchard.Web\Modules\EventManagement\Views\EditorTemplates\Parts\Event.cshtml 2 2 EventManagement
Error 21 The name 'T' does not exist in the current context c:\Users\willem\Documents\Visual Studio 2010\Projects\000-Orchard Development\src\Orchard.Web\Modules\EventManagement\Views\EditorTemplates\Parts\Event.cshtml 5 14 EventManagement
Error 22 'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'LabelFor' and no extension method 'LabelFor' accepting a first argument of type 'System.Web.WebPages.Html.HtmlHelper' could be found (are you missing a using directive or an assembly reference?) c:\Users\willem\Documents\Visual Studio 2010\Projects\000-Orchard Development\src\Orchard.Web\Modules\EventManagement\Views\EditorTemplates\Parts\Event.cshtml 6 11 EventManagement
Intellisense 正在剃刀视图中工作,但它只为 Html 辅助方法提供有限数量的字段。例如,没有任何特定于模型的方法,如 LabelFor 和 TextboxFor。
我安装了 MVC 3 和 4。该解决方案在 VS2010 中运行良好。
更新:
在 VS2012 中添加新的MVC3 项目时,它工作正常。所以这意味着它肯定与项目有关,而不是与安装有关。
更新2: 我认为问题在于视图无权访问根配置中的引用库:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<pages pageBaseType="Orchard.Mvc.ViewEngines.Razor.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="Orchard.Mvc.Html"/>
</namespaces>
</pages>
</system.web.webPages.razor>
它在运行时执行,但智能感知和错误控制台不接受它
任何帮助表示赞赏。
谢谢