71

私はJustin Slattery's Plugin Architecture tutorialをフォローしており、WebForm ViewsではなくRazorに適応させようとしています。ビューはWebViewPageまたはWebViewPageから派生する必要があります<TModel>

他のすべて(コントローラ、プラグインアセンブリのロードなど)は大丈夫です。しかし、埋め込まれたRazorビューを正しく動作させることができません。私は「HelloWorldの/インデックス」を参照しようとすると、私は次のエラーを取得する:

The view at '~/Plugins/MyProjectPlugin.dll/MyProjectPlugin.Views.HelloWorld.Index.cshtml' must derive from WebViewPage or WebViewPage<TModel>. 

例外が必要な場合、私は、完全なスタックトレースを含めることができSystem.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +262

によってスローされます。

誰かが私が間違っている可能性について助言してもらえますか?

答えて

155

あなたは、レイザーにさらに適合したfollowing blog postをチェックアウトすることができます。

あなたの質問に答えるために、標準以外の場所からあなたのビューを提供しているので、~/Views/web.configファイルがなくなり、あなたのカミソリビューの基本タイプを指定することができます。

@inherits System.Web.Mvc.WebViewPage 
@model ... 
+1

両方の情報をありがとうございます。私があなたが言及したブログをチェックアウトします。 – Nasir

+12

これで私の問題を解決するために〜/ Viewsから別の場所にweb.configをコピーできました。ありがとう。 – joelnet

+1

@ダリン・ディミトロフ私にも同様の問題があります。 '@ inherits'を追加しようとすると、' @ inherits'と '@ model'を同時に使うことができないというエラーが出ます。これで助けてもらえますか? EDIT。私はmvc4を使用しています – gumenimeda

6

注:あなたは、各かみそりビューの上部に以下を追加する必要がある場合がありますので、私は非常に同様の問題を持っていたし、最終的に私はリンクMVC 4.0.0.0を持つ唯一の開発者だったことを突き止めましたその解決策。

誰もが3.0.0.0を正しく参照していて、エラーなしで構築/実行していました。

TL; DR参照が他の開発グループと同じであることを確認してください。

1

私はカミソリライブラリを含むパッケージフォルダをコミットしなかったので、同じ問題がありました。それから、パッケージを追加しました。しかし、再構築すると破損しました。その後、私はナゲットの自動実行をオフにしてビルドし、今は正常に動作しています。 私の場合、ナゲットは物事を混乱させていました。

0

今日、古いMVC3プロジェクトをバージョン4にアップデートするときにこのエラーが発生しました。解決策は、セクションの属性appliesTo="v2.0.50727"を削除することでした。

-1

パッケージをインストールします。インストール・パッケージのMicrosoft.AspNet.WebPages

+1

私は 'Microsoft.AspNet.WebPages'パッケージが4年前にASP.NET MV3で利用できたとは思いません。 – Nasir

+2

@Nasir、私は本当に質問しています。StackOverflowでは、問題が依然として続いていても、投稿時に利用可能だった技術に関する回答が優先されますか? –

+1

私の個人的な意見は、あなたが古い質問に答えているならば、質問が最初に尋ねられたときに提供されている回答が関連していない可能性があることを少なくとも認めているということです。さもなければ、それは情報のない回答か、ユーザが詳細に注意を払わなかったかのいずれかとなります(日付はそれらの詳細の1つです)。 – Nasir

0

私は私の痛みを共有したい...サイトでは、それがこのエラーを投げていた、私は顧客のIISに発行ただし際、ローカルに罰金働いていました。すべてのweb.configファイル(ルートおよび/ Views)は、サイトの作業コピーと完全に一致しています。

ビューの1つ(logon.cshtml)に一貫性のない行末があり、Windowsマシンでそれを修正するために「はい」をクリックしませんでした。

一貫性のない行終了ダイアログにyesをクリックして、logon.cshtmlビューを公開すると、私のために修正されました。

0

MVC足場(特にViewsフォルダ)をWeb APIプロジェクトに追加しようとしたときにこのエラーが発生しました。Darin Dimitrov's answerは言う:

there is no longer the ~/Views/web.config file that applies and allows you to specify the base type for your razor views

そして、その答えのコメントでは、joelnet said

I was able to copy the web.config from ~/Views to my alternate location to solve my issue with this.

Paul d'Aoust said

If you're having trouble getting the solution in @joelnet's comment to work, try cleaning and rebuilding the project.

これらのヒントは、私が解決策を考え出す助けました。

最初に同じソリューションの別のプロジェクトのViewsフォルダのWeb.configを新しいViewsフォルダにコピーしました。メインのnamespaceというタグを新しいプロジェクトに合わせて名前を変更しました。エラーが発生した後、別の<add namespace="..." />が削除されました。私はその後ビルドをトリガしました(通常のビルドのみでした。私はきれいにして再構築する必要はありませんでした)、新しいビューをエラーなくロードすることができました。