問題タブ [virtualpathprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
955 参照

asp.net - ASP.Net、MasterPage does not exist エラーを無視する方法は?

ASP.Net MVC2 に基づく CMS プロジェクトに取り組んでいます。マスター ページにVirtualPathProviderVirtualFileを実装して、db でマスター ページを使用しています。

以下のように動作します: aspx/ascx ファイルで MasterPageFile を指定します。

次に、 VirtualPathProvider.GetFileをオーバーライドしてデータベースからマスター ページをロードします。"/Content.master" は、データベースで検索するためのキーです。

私にとってはすべてうまくいきますが、例外はあります

VS2010 のコンテキスト メニューで [Build Web Site] をクリックすると、「The file '/Content.master' does not exist.」というエラーが表示されます。

私のマスター ページは db に保存されており、このエラーは正常です。VS2010 がこのエラーを無視できる方法はありますか?

BuildManager の相対コードを調べていますが、複雑なようです。

助けてくれてありがとう

0 投票する
1 に答える
223 参照

asp.net - VirtualPathProvider によって提供されるマスター ページを選択できるようにする方法

同じデザインを共有するイントラネット Web サイトが多数あります。そのため、マスター ページ、スタイルシート、画像、および JavaScript を共有アセンブリに配置しました。

コンテンツは次を使用してロードされます。

問題は、Visual Studio が画像またはマスターページを見つけられないため、新しいビュー ページを作成するときにマスターページを選択できないという多くの警告が表示されることです。

それは何らかの方法で修正できますか?

注: Web サイトを実行しているときは、すべて正常に動作します。

0 投票する
1 に答える
301 参照

asp.net-mvc - 静的ファイルがカッシーニの場合と同じようにIISでルーティングされない

複数のサイトでコンテンツを再利用できるように、アセンブリでビューと静的コンテンツを検索するASP.NETMVC2用のカスタムVirtualPathProviderを作成しました。カッシーニを使用している間は問題なく動作しますが、IIS 7を実行しているサーバーにサイトを展開すると、静的ファイルは404を返すだけで、AssemblyPathProvider(私が作成したクラス)を経由することさえありません。この点でIISをカッシーニと同じように動作させる方法を知っている人はいますか?

0 投票する
2 に答える
929 参照

asp.net-mvc-3 - アドインから_ViewStart.cshtmlを解決しようとするMVC 3アドインビュー

私はインターネットを精査し、ASP.Net MVC 3 サイトで MEF を使用できるようにする方法を学んできました。必要に応じて機能を拡張できるように、モジュール式のサイトを構築するという考えです。ほぼすべてのコードが機能していますが、何らかの理由で、アドインからインデックス ビューを読み込もうとすると、メイン ファイルではなく、アドインから _ViewStart.cshtml ファイルを読み込もうとしています。 MVC サイト。

誰かがこれに遭遇しましたか?もしそうなら、回避策は何でしたか?

0 投票する
0 に答える
546 参照

asp.net-mvc - カスタムControllerFactoryとDBProviderでのasp.mvc404エラー

私が現在取り組んでいるアプリは、物理ビューが存在しない場合にデータベースからビューを取得するとともに、標準のビューのインスタンス化を組み合わせたMVC3アプリです。カスタムcontrollerfactoryとvirtualpathproviderを実装するときに404エラーの問題が発生し、何が間違っているのかよくわかりません。

必要な動作は次のとおりです。

1)リクエストに「物理的」ビューが存在する場合は、ファイルシステムから直接提供します(標準のMVC動作に従います)。この場合、ディスク上に標準のコントローラー/ビューがあります。2)コントローラー/ビューが存在しない場合は、必要な情報がデータベースに保存されているかどうかを確認し、データベースから提供します。GenericControllerと呼ばれるコントローラーが呼び出され、データベースからビューデータを取得します。

カスタムコントローラーファクトリを作成しました:

カスタム仮想パスプロバイダーと同様に:

ファイルシステムに存在しないページが要求された場合、アプリフローは正しく機能しているようです。1)virtualpathproviderでFileExistsを最初に呼び出すとfalseが返されるため、IISは静的ファイルとして機能しません。2)コントローラーファクトリのGetControllerTypeメソッドが呼び出され、genericcontrollerタイプが適切に返されます。3)FileExistsメソッドが再度呼び出され、今回はtrueを返します。4)ControllerReleaseメソッドを含むすべてのコントローラーファクトリメソッドが呼び出されます。

ただし、GenericControllerが実際に呼び出されることはありません。そしてIISは404例外を返します。

MVCリクエストをキャプチャする必要があるMVCコントローラーインスタンス化パイプラインの他の場所はありますか?私が達成しようとしていることを達成するためのより良い方法はありますか?

ありがとう。

0 投票する
4 に答える
11502 参照

asp.net-mvc - クラス ライブラリ内の MEF および Razor ビュー

MEF を使用した複合 ASP .NET MVC 3 Razor アプリケーションがあります。Viewsアプリケーションから通常のフォルダーの下にプラグインを DLL ファイルおよびビュー (CSHTML) として展開する場合、すべてがうまくいきます。しかし、これはあまりきれいではなく、(コントローラーとモデルの両方と共に) DLL ファイル内に埋め込みリソースとしてビューを配置しないと、実際のプラグインにはなりません。

私は多くの記事をフォローしてきました (それらのほとんどは古くなっています)。実際、スタック オーバーフローには非常に優れたものが 1 つあります。クラス ライブラリ内のコントローラーとビューです。

また、ドキュメントをチェックVirtualPathProviderして、アセンブリ内のファイルを見つけて完全にロードする (または少なくともストリームを取得する) カスタム ファイルを作成することができました。VirtualPathProvider このために、MSDNのドキュメントに従いました。

VirtualFile の実装もありますが、VirtualDirectory の実装はまだありません。

これが問題です。私はRazorビューで作業しています。web.configRazor がそれらをビルドするには、ファイルからの構成仕様が必要であることは知っています。しかし、それらを DLL 内に埋め込むと、この構成は単純に失われます。

それがエラーが発生し続ける理由なのだろうか:

「~/Plugins/CRM.Web.Views.CRM.Index.cshtml」のビューは、WebViewPage または WebViewPage から派生する必要があります。

たぶん、それを機能させるためにいくつかのコードを追加する必要がありますか? 何か案は?

0 投票する
1 に答える
1150 参照

asp.net - 仮想パスプロバイダーを使用する場合の組み込みリソース

アセンブリに埋め込まれたユーザーコントロールをロードするための独自の仮想パスプロバイダーを正常に作成しました。私が直面している問題は、MyUserControl.ascxに埋め込まれた文字列リソースを使用できないことです。

これにより、IISは実行時にコンパイル例外をスローし、リソースSR.Welcomeが見つからないことを通知します。ASP.NETランタイムは、ユーザーコントロールを含むものではなく、メインアセンブリ内の文字列リソースSRを検索すると思います。

誰かがこの問題を抱えていて、それを機能させる方法を知っていますか?

0 投票する
1 に答える
1725 参照

asp.net-mvc - 仮想パス プロバイダーを介して静的ファイルを処理するように IIS 7 を構成する

仮想ファイル システムから静的ファイルを提供する仮想パス プロバイダーがあります。仮想パス プロバイダーを介して静的ファイルをサーバーに提供するように IIS を構成することはできますか?それとも、カスタムの静的ファイル ハンドラーを作成する必要がありますか?

0 投票する
1 に答える
1549 参照

asp.net-mvc - ASP.NET MVC オーバーライドされた VirtualPathProvider でビューのキャッシュを無効にする

私はポータブル領域を使用していくつかの開発作業を行っているため、オーバーライドされVirtualPathProviderた .

public override bool FileExists(string virtualPath)は数分ごとにしか呼び出されないようです。つまり、MVC はビューをキャッシュしています。

これはおそらく本番環境では素晴らしいことですが、開発環境でオフにする方法がわかりません。VirtualPathProviderビューを使用するたびに呼び出されるようにしたい。

助言がありますか?

0 投票する
1 に答える
558 参照

asp.net - ASP.Net VirtualPathProvider と Visual Studio Intellisense

誰かがこの煩わしさで私を助けてくれることを願っています.

職場では、共通の MasterPage を共有する 2 つの独立した Web サイト プロジェクトがあります。MasterPage は、両方のプロジェクトが参照するクラス ライブラリに埋め込まれています。各プロジェクトで MasterPage を参照できるカスタム VirtualPathProvider を使用します。これは実行時/コンパイル時には問題なく動作しますが、aspx ページ マークアップ内で Intellisense が壊れます。

MasterPageFile プロパティを "~/EmbeddedMasterPage.Master" に設定すると、Visual Studio はその下に "パスが見つかりません" という赤い波線エラーを表示し、Web サイト プロジェクト内でそのファイルを検索しようとしていることを示すディレクトリが表示されます (クラス ライブラリ プロジェクト)。Visual Studio は MasterPage の場所を特定できないため、すべてのインテリセンスが機能しなくなります。タグには何も表示されません。実際、それが提供する唯一のインテリセンスは、基本的な html タグ用です。グーグルで調べたところ、VSが埋め込まれたMasterPageのルートhtml/head/bodyタグを見つけられないという情報しか見つかりませんでした。しかし、それを修正する方法が見つかりませんでした。

これは、Visual Studio 2008 と 2010 の両方で発生します。

更新(2011/4/10)

とりあえず、埋め込まれたマスターページを実際のサイト プロジェクトにコピーして動作させる必要があります。ファイルをコンパイル/コピーしないように設定すると、問題なく動作します。