MultiAreaプロジェクトでViewパスを共有する方法(環境:asp.net mvc 3 vs 2010)
環境:asp.net mvc3 vs2010
マルチAreaを使用して作業する場合、Area間でSharedディレクトリを共有できるように、それぞれのSharedアドレスを登録する必要があります.
Globalでasax.csは、以下のように異なるAreaのEngineを追加する必要があります.
これで、この3つのAreaのViews/Sharedディレクトリを共有できます.
マルチAreaを使用して作業する場合、Area間でSharedディレクトリを共有できるように、それぞれのSharedアドレスを登録する必要があります.
Globalでasax.csは、以下のように異なるAreaのEngineを追加する必要があります.
-
- [csharp] view plaincopy
- 01.public class MvcApplication : System.Web.HttpApplication
- 02.{
- 03....
- 04.
- 05. protected void Application_Start()
- 06. {
- 07. RegisterRoutes(RouteTable.Routes);
- 08. ViewEngines.Engines.Add(new AgileViewEngine());
- 09. ViewEngines.Engines.Add(new MySpaceViewEngine());
- 10. ViewEngines.Engines.Add(new SFCViewEngine());
- 11. }
- 12.}
- 13.public class AgileViewEngine : RazorViewEngine
- 14.{
- 15. private static string[] NewPartialViewFormats = new[] {
- 16. "~/Areas/Agile/Views/Shared/{0}.cshtml",
- 17. };
- 18.
- 19. public AgileViewEngine()
- 20. {
- 21. basebase.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();
- 22. }
- 23.}
- 24.public class MySpaceViewEngine : RazorViewEngine
- 25.{
- 26. private static string[] NewPartialViewFormats = new[] {
- 27. "~/Areas/MySpace/Views/Shared/{0}.cshtml"
- 28. };
- 29.
- 30. public MySpaceViewEngine()
- 31. {
- 32. basebase.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();
- 33. }
- 34.}
- 35.public class SFCViewEngine : RazorViewEngine
- 36.{
- 37. private static string[] NewPartialViewFormats = new[] {
- 38. "~/Areas/SFC/Views/Shared/{0}.cshtml"
- 39. };
- 40.
- 41. public SFCViewEngine()
- 42. {
- 43. basebase.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();
- 44. }
- 45.}
これで、この3つのAreaのViews/Sharedディレクトリを共有できます.