17

以下にリストされているステップバイステップでわかるように、非常によく似た投稿で提供された回答に従いました。

「'System.Web.WebPages.WebPage' から継承されていません」という同じエラー メッセージがまだ表示されます。

概要

Pluralsight でジョン パパの「HTML5、Web API、ノックアウト、jQuery を使用したシングル ページ アプリ」から学んでいます。このコースでは、「Code Camper」と呼ばれるアプリケーションの構築について概説します。サンプル MVC4 SPA は、"index.cshtml" というルート ビューを作成します。一連の @RenderPage 呼び出しが行われる場所。このアプリケーションは、私の開発マシンで問題なく動作します。ただし、ルート view.cshtml を使用して MVC4 SPA を最初から作成しようとすると、常に「System.Web.WebPages.WebPage から継承されません」というエラーが表示されます。

ステップバイステップ

ここからダウンロードしてください。

1.「MVC4RootView」という名前の新しい MVC4 インターネット プロジェクトを作成します。

2. プロジェクトのルートで、RootView.cshtml ビューを作成します。

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <div>
            @RenderPage("Views/Partial1.cshtml")
    </div>
</body>
</html>

3.簡単なdivだけで「~/Views/Partial1.cshtml」を追加

<div>Hello from Partial 1</div>

4.ルート Web.Config webpages:Enabled を true に変更しました。

<add key="webpages:Enabled" value="true" />

5.ルート Web.config に system.web.webPages.razor を追加

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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.Optimization"/>
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

6.ルート web.config の configSections に sectionGroup name="system.web.webPages.razor" を追加

<sectionGroup name="system.web.webPages.razor"
    type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
    System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
    PublicKeyToken=31BF3856AD364E35">       
    <section name="host"
        type="System.Web.WebPages.Razor.Configuration.HostSection,
        System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
        PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages"
        type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
        System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
        PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

7.RootView.cshtmlをスタートページに設定

8.実行して次のエラーを取得します。

これを修正する方法がわかりません。Code Camper コードは問題なく動作します。行ごとに比較しましたが、動作を妨げるコードの違いは見られません。

考え?ダン

4

3 に答える 3

23

web.configフォルダからを削除しViewsます。

そのPartial1.cshtmlフォルダーからインクルードしているので、そこからweb.configもインクルードしています。そして、そのweb.configは、すべてのページがWebViewPageから継承する必要があると言っています。

于 2013-01-19T02:06:08.037 に答える