簡単なプラグインアーキテクチャを作成する最良の方法のように、ASP.NET MVC 3とカミソリビューでポータブルビューを使用しようとしています。だから私は私のクラスライブラリのセットアップを持って、私は私のビュー/Views/Admin/Index.cshtmlに位置し、それは組み込みリソースとして設定されています。私はそのプロジェクトをメインWebアプリケーションプロジェクトの依存関係として追加します。 Adminコントローラ、インデックスアクションにアクセスしようとすると、そのビューファイルが見つからないというメッセージが表示されます(コントローラが正しく組み込まれているため)。私はそれがメインエリアのWebアプリケーションプロジェクトではなく、ポータブルエリアのバイナリではないと考えています。カミソリの景色をポータブルエリアで扱う方法はありますか?ASP.NET MVC 3、Razor Views、およびPortable Areas
答えて
ポータブルエリアに埋め込みリソースとしてビューをマークしたことを確認しましたか?
また私は、埋め込みビューをオーバーライドすることができるということがわかりました。異なるコードロジックを持つ組み込みビューの同じ名前と場所を持つホストアプリケーションにビューを配置すると、埋め込まれた1つのニース!
希望これは
を支援します私はしばらくの間、この特定の問題で苦労してきたが、私はついにそれを考え出したと思います。
プロジェクト内でフォルダ構造と名前空間がどのように呼び出されるかは、正しく機能するためには非常に重要です。
は、プロジェクトの構造を見てみましょう:
私はここに埋め込まれたかみそりを望むポータブルエリアの作業例を持っています。
エリアの名前はUserAdministration
であり、プロジェクトのルートにはUserAdministration
名前空間にあるUserAdministrationRegistration
クラスがあります。 次にControllers
、Models
、Views
フォルダ(通常のMVCプロジェクトのような)があり、Views
フォルダの下には、その領域のビューを含むUserAdministration
フォルダがあります。
埋め込みビューを動作させるために非常に重要なこともあります:global.asax.cs
ファイルのApplication_Start
メソッドで新しいビューエンジンを登録する必要がありますか?
PortableAreaRegistration.RegisterEmbeddedViewEngine();
そして...、あなたは2つのパラメータ(AreaRegistrationContext context
とIApplicationBus bus
)を取りRegisterArea
メソッドをオーバーライドし、そこに基本実装を呼び出すことを確認してください。
public override void RegisterArea(AreaRegistrationContext context,
IApplicationBus bus)
{
base.RegisterArea(context, bus); // <== very important!
context.MapRoute(
"UserAdministration",
AreaName + "/{controller}/{action}/{id}",
new { controller = "UserAdministration", action = "Index",
id = UrlParameter.Optional }
);
}
あなたの場合基本実装を呼び出さないでください。少なくとも
RegisterAreaEmbeddedResources();
埋め込まれたビューとリソース登録される。
この回答をありがとう、正確に私が探していたものを参照してください。私はまだビューがエラーが見つかりませんが取得します。それは埋め込まれているものの、まだ何もありません。 – Pieter
これを動作させるには、WebサイトのEmbeddedResourceVirtualPathProviderへのナゲットパッケージリファレンスを追加する必要がありました。 – Pieter
これは私が持っていたものと同じように見えます。それは私のdevマシン上で正常に動作しますが、実際には配備された書き込みビューファイルを参照しません。私はそれが探していたビューを記録し、_layoutと_viewstartのものは見つけましたが、.cshtmlファイルを完全にスキップしました。 –
私はFretjeの答えの指示に従うことによって、この作業を持って、そしてまた、あなたのウェブサイトに EmbeddedResourceVirtualPathProvider にnugetパッケージ参照を追加します。
ちょうど参照?あなたはそれを取り入れるために何をしましたか? –
Visual Studioで、ソリューションエクスプローラで参照を右クリックし、[ライブラリパッケージ参照の追加]を選択します。ポップアップで「online」を選択し、「EmbeddedResourceVirtualPathProvider」を検索してからinstallをクリックします。 NugetパッケージインストーラのためにService Pack 1にアップデートされたVS2010が必要であることに注意してください。 – Pieter
- 1. MVC 3 with Razor with partial views
- 2. ASP.NET Razor Over ASP.NETを使用したASP.NET WebページMVC Razor Views
- 3. ASP.NET MVC 3およびHttpContext.Current.User.Identity.Name
- 4. ASP.Net MVC 3 Razor Create Report
- 5. ASP.NET MVC 3、Razor Layout Controllerのような?
- 6. ASP.NET MVC Razor Viewsのモデル変更を管理する
- 7. ASP.NET MVC Razor Viewsの角2つの角括弧構文エラー
- 8. ASP.NET MVC 5のデータベースからRazor Viewsをロード
- 9. ASP.NETコア、MVC、およびOWIN
- 10. ASP.NET MVCリポジトリおよびコントローラエラー
- 11. Asp.Net MVC 3(Razor、Json、Ajax)マスターディテール - ディテールセーブ失敗
- 12. TimePicker Razor ASP.NET-MVC
- 13. ASP.NET MVC Razorコンテンツプレースホルダー
- 14. Asp.Net MVC 3 Razor Viewsで動作するようにグラフィックデザイナを設定するには?
- 15. MVC ASP.NET or Razor
- 16. MVC 3 Razor Intellisense
- 17. モデル内のMVC 3およびXmlプロパティーデータ
- 18. Asp.Net MVC 3 Razor Rendering Bug?かみそりビューエンジンASP.Net MVC 3 RCを使用して
- 19. ASP.NET MVC DropDownList with razor
- 20. Asp.net 5(およびMVC 6)ホスティング
- 21. ASP.NET MVC承認およびハイパーリンク
- 22. ASP.NET MVC Razorのカスタムコントロール
- 23. ASP.NET MVC - Razor and JavaScript
- 24. asp.net mvc razorのコードエディタ
- 25. ASP.NET MVC Razor-DropDownList幅
- 26. MVC 3 Razor PopUp Window
- 27. ASP.NET MVC RazorオブジェクトHtmlAttributes
- 28. ASP.NET MVC、MonoDevelopのおよびWindows
- 29. 「Permanent」SessionFactory、ASP.NET MVC、およびnHibernate
- 30. ASP.NET、MVC、および動的データ
私は登録されたビューエンジンの順序に依存していると思いますが、埋め込みビューエンジンが最初の場合、ポータブルエリアビューはルートプロジェクトの通常ビューよりも優先されます。副次的なこととして、すべてのビューエンジンをクリアして、あなたのプロジェクトで使用しているものだけを登録していることを確認して、パフォーマンスの向上を得られることがあります。 http://insightpassion.com/norbertraus/index.php/2011/04/29/razor-views-performance/ – JohannesH