打开一个MVC3项目在VS2012(Opening an MVC3 project in VS201

2019-09-19 08:30发布

我试图打开一个新安装的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

智能感知是工作在剃刀视图,但它仅给出了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>

它在运行时,但intellilsense和错误控制台不把它捡起来

任何帮助表示赞赏。

谢谢

Answer 1:

对我来说,这个问题是通过将解决:

<add key="webpages:Version" value="1.0.0.0"/>

在我的appSettings我的根web.config的节

 <appSettings>
     <add key="webpages:Version" value="1.0.0.0"/>
     <add key="ClientValidationEnabled" value="true"/>
     <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>


Answer 2:

检查此链接:

http://msdn.microsoft.com/en-us/library/hh266747(v=vs.110).aspx

确保你知道这个项目是MVC3。 确保项目是用VS2010创建了SP1。



Answer 3:

我通过卸载MVC4 RC固定这一点。 似乎并没有与我的系统(或者我测试的其他3个系统)兼容。 就只能等待MVC4的发行版



Answer 4:

从MVC 4 发行说明 :

所需的更新

  1. 在根Web.config文件,添加具有关键的网页的新条目:版本和值1.0.0.0。

  2. 在Solution Explorer中,用鼠标右键单击该项目名称,然后选择卸载项目。 然后,再次右键单击该名称并选择编辑ProjectName.csproj。

  3. 找到以下组件的引用:<参考包含= “System.Web.WebPages”/> <参考包含= “System.Web.Helpers”/>

用以下替换它们:

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 
<Reference Include="System.Web.Helpers, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

4.List项目

保存更改,关闭项目(.csproj的)文件你正在编辑,然后用鼠标右键单击该项目并选择刷新。



Answer 5:

可以在同一台计算机上同时安装MVC3和MVC4,请在配置web.config像下面

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>


文章来源: Opening an MVC3 project in VS2012