2007-07-02 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Mon, 2 Jul 2007 09:14:17 +0000 (09:14 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Mon, 2 Jul 2007 09:14:17 +0000 (09:14 -0000)
* Control.cs: make sure TemplateSourceDirectory returns meaningful
results in the 1.1 profile. Fixes bug #81950.

svn path=/trunk/mcs/; revision=81163

mcs/class/System.Web/System.Web.UI/ChangeLog
mcs/class/System.Web/System.Web.UI/Control.cs

index 059b395007bdd39184c6746ec4b63b2ed232ff36..7881dac22112061f8a6d5717fc9d1932cd5fd02d 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-02  Marek Habersack  <mhabersack@novell.com>
+
+       * Control.cs: make sure TemplateSourceDirectory returns meaningful
+       results in the 1.1 profile. Fixes bug #81950.
+
 2007-06-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
 
        * ObjectStateFormatter.cs: WriterContext.RegisterCache, refactored out
index 166707752ee3263f13f39813ae77ea96fa52ebd2..459dde9a6bf68e85afdd299ecd62d8f1c8c833b9 100644 (file)
@@ -109,8 +109,9 @@ namespace System.Web.UI
 #if NET_2_0
                TemplateControl _templateControl;
                bool _isChildControlStateCleared;
-               string _templateSourceDirectory;
 #endif
+               string _templateSourceDirectory;
+               
                /*************/
                int stateMask;
                const int ENABLE_VIEWSTATE      = 1;
@@ -437,7 +438,17 @@ namespace System.Web.UI
                                
                                return _templateSourceDirectory;
 #else
-                               return (_parent == null) ? String.Empty : _parent.TemplateSourceDirectory;
+                               if (_templateSourceDirectory == null) {
+                                       HttpContext ctx = HttpContext.Current;
+                                       HttpRequest req = ctx != null ? ctx.Request : null;
+                                       
+                                       _templateSourceDirectory = (_parent == null)
+                                               ? req != null ? VirtualPathUtility.RemoveTrailingSlash (
+                                                       VirtualPathUtility.GetDirectory (
+                                                               HttpContext.Current.Request.CurrentExecutionFilePath)) : String.Empty
+                                               : _parent.TemplateSourceDirectory;
+                               }
+                               return _templateSourceDirectory;
 #endif
                        }
                 }