0

次の手順に従って、Asp.Net MVC 4 を Asp.Net Webforms 4.5 Web アプリケーションに追加しようとしました。

http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx

違いは、記事が Asp.Net MVC 3 を Asp.Net Webforms 4.0 アプリケーションに追加することをカバーしていることです。

アプリケーションをビルドするには、次の nuget パッケージも追加する必要がありました。

  • Microsoft.AspNet.Web.最適化
  • Microsoft.AspNet.WebApi.WebHost
  • Microsoft.AspNet.WebPages

これらのパッケージが持つ依存関係とともに。(これらは、バンドルや Web Api など、asp.net mvc 4 テンプレートのいくつかの新しい機能のために必要だったと思います。)

アプリケーションを実行すると、Web フォームの default.aspx ページにアクセスできます。しかし、mvc ルート /Home/Index/ にアクセスしようとすると、次のような黄色の死の画面が表示されます。

コンパイル エラー

説明: この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソース コードを適切に変更してください。

コンパイラ エラー メッセージ: CS0103: 名前 'BeginContext' は現在のコンテキストに存在しません

ソース エラー:

50 行目: #line default 51 行目: #line hidden 52 行目: BeginContext("~/Views/Home/Index.cshtml", 39, 2, true); 53行目: 54行目: WriteLiteral("\r\n");

ソース ファイル: c:\Users\deap\AppData\Local\Temp\Temporary ASP.NET Files\root\4e75f435\a63aa726\App_Web_index.cshtml.a8d08dba.m4g9z3sv.0.cs 行: 52

何が起こっているのか、それを実行するために何をする必要があるのか​​ 誰かが知っていますか?

4

1 に答える 1

0

一晩ぐっすり眠った後、web.config を、フォルダーをコピーしたダミーの mvc Web アプリケーションと比較することにしました。

以下を変更します。

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

の中へ:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

私の問題を解決しました。

于 2013-10-02T04:56:45.460 に答える