環境:asp.net mvc3 vs2010
當使用多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.}
這樣,這三個Area的Views/Shared目錄就可以共享了。
本文轉自火星人陳勇 51CTO部落格,原文連結:http://blog.51cto.com/cheny/1101218