73

Justin Slatteryのプラグインアーキテクチャチュートリアルに従って、WebFormビューではなくRazorに適合させようとしています。

他のすべて(コントローラー、プラグインアセンブリのロードなど)は問題ないようです。ただし、埋め込まれたRazorビューを正しく機能させることができません。「HelloWorld/Index」を参照しようとすると、次のエラーが発生します。

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

必要に応じて、完全なスタックトレースを含めることができます。

誰かが私が間違っているかもしれないことについてアドバイスできますか?

4

7 に答える 7

159

Razorにさらに適合した次のブログ投稿をチェックアウトできます。

しかし、あなたの質問に答えるために、あなたは現在非標準の場所からビューを提供しているので、~/Views/web.config適用されるファイルはもうありません、そしてあなたはあなたのかみそりビューの基本タイプを指定することができます。したがって、各かみそりビューの上部に次を追加する必要がある場合があります。

@inherits System.Web.Mvc.WebViewPage
@model ...
于 2011-11-14T20:19:28.927 に答える
6

注:私は非常によく似た問題を抱えており、MVC4.0.0.0がソリューションにリンクされている唯一の開発者であることを最終的に追跡する必要がありました。

他のすべての人は3.0.0.0を適切に参照し、エラーなしでビルド/実行していました。

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

于 2013-07-23T20:09:26.517 に答える
1

かみそりのライブラリを含むpackagesフォルダーをコミットしなかったため、同じ問題が発生しました。次に、パッケージを追加しましたが、機能しましたが、再構築すると壊れました。次に、ビルド時にnugetの自動実行をオフにしましたが、正常に機能しています。私の場合、nugetは物事を台無しにしていました。

于 2015-01-05T23:18:15.193 に答える
0

今日、古いMVC3プロジェクトをバージョン4に更新するときにこのエラーが発生しました。私にとっての解決策はappliesTo="v2.0.50727"<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">セクションの属性を削除することでした。

于 2015-06-01T13:15:47.787 に答える
0

私の苦痛を共有したいと思います。サイトはローカルで正常に機能していましたが、顧客のIISに公開すると、このエラーがスローされていました。すべてのweb.configファイル(rootおよび/ Views)は、サイトの作業コピーと完全に一致しました。

ビューの1つ(logon.cshtml)の行末に一貫性がなく、Windowsマシンで[はい]をクリックして修正しませんでした。

一貫性のない行末ダイアログで[はい]をクリックし、logon.cshtmlビューを公開すると、修正されました。

于 2016-09-14T10:03:07.553 に答える
0

MVCスキャフォールディング(具体的にはViewsフォルダー)をWeb APIプロジェクトに追加しようとすると、このエラーが発生しました。 ダリン・ディミトロフの答えはこう言っています:

適用するファイルがなくなり、~/Views/web.configかみそりビューの基本タイプを指定できるようになります

そして、その答えについてのコメントで、joelnetは言った

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

そしてポール・ドーストは言った

@joelnetのコメントの解決策を機能させるのに問題がある場合は、プロジェクトをクリーンアップして再構築してみてください。

これらのヒントは、私が解決策を理解するのに役立ちました。

まず、同じソリューション内の別のプロジェクトWeb.configのフォルダーから新しいフォルダーにコピーしました。新しいプロジェクトに一致するようにメインタグの名前を変更し、エラーが発生した後、不要な別のタグを削除しました。次に、ビルドをトリガーし(通常のビルドのみ、クリーンアップして再構築する必要はありませんでした)、エラーなしで新しいビューをロードできました。ViewsViewsnamespace<add namespace="..." />

于 2017-02-03T17:38:27.000 に答える
-1

パッケージをインストールします:Install-Package Microsoft.AspNet.WebPages

于 2016-04-04T20:39:24.230 に答える