8

新しくインストールしたVisualStudioExpress2012RCでMVC3ソリューションを開こうとしています。これまでのところ、何らかの理由でVS2012がプロジェクトがMVCプロジェクトであることを認識しないため、ビュー/コントローラーが追加されないという問題が発生しました。ソリューション内の各プロジェクトのファイルのProjectTypeGuidsノードに次のGUIDを追加することで、これを乗り越えました。.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のようなモデル固有のメソッドはありません。

MVC3と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>

実行時に実行されますが、インテリセンスおよびエラーコンソールはそれを取得しません

どんな助けでも大歓迎です。

ありがとう

4

5 に答える 5

3

私にとって、この問題は次を追加することで解決されました:

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

ルート web.config の appSettings セクションで

例えば

 <appSettings>
     <add key="webpages:Version" value="1.0.0.0"/>
     <add key="ClientValidationEnabled" value="true"/>
     <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>
于 2012-08-07T19:30:42.137 に答える
2

このリンクを確認してください:

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

プロジェクトが MVC3 であることを確認してください。プロジェクトが VS2010 SP1 で作成されたことを確認してください。

于 2012-07-11T15:51:45.173 に答える
0

MVC 4リリース ノートから:

必要な更新

  1. ルート Web.config ファイルに、キー webPages:Version と値 1.0.0.0 を持つ新しいエントリを追加します。

  2. ソリューション エクスプローラーで、プロジェクト名を右クリックし、[プロジェクトのアンロード] を選択します。次に、名前をもう一度右クリックし、[ProjectName.csproj の編集] を選択します。

  3. 次のアセンブリ参照を見つけます。 < Reference Include="System.Web.WebPages"/> < Reference Include="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.リスト項目

変更を保存し、編集していたプロジェクト (.csproj) ファイルを閉じてから、プロジェクトを右クリックして [再読み込み] を選択します。

于 2012-08-28T16:08:59.967 に答える
0

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>
于 2012-08-14T06:03:29.210 に答える
0

MVC4 RC をアンインストールすることでこれを修正しました。私のシステム (または私がテストした他の 3 つのシステム) と互換性がないようです。MVC4のリリース版を待つしかない

于 2012-07-17T14:33:14.527 に答える