X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2FSystem.Web.UI%2FMasterPageParser.jvm.cs;h=da72d87e945d030be71086918123f8dccdcb6757;hb=f5f69e540e19bae73021c71ff769b98878a478be;hp=f9ac84753784664d32c5ab37e6d19a782165db5e;hpb=496dfbf9ec0fd3143e5dd560a863d916e56a52b8;p=mono.git diff --git a/mcs/class/System.Web/System.Web.UI/MasterPageParser.jvm.cs b/mcs/class/System.Web/System.Web.UI/MasterPageParser.jvm.cs index f9ac8475378..da72d87e945 100644 --- a/mcs/class/System.Web/System.Web.UI/MasterPageParser.jvm.cs +++ b/mcs/class/System.Web/System.Web.UI/MasterPageParser.jvm.cs @@ -35,7 +35,7 @@ using System.Collections; using System.IO; using System.Web; using System.Web.Compilation; -using System.Web.Util; +using System.Web.Util; using System.Web.J2EE; namespace System.Web.UI @@ -47,13 +47,19 @@ namespace System.Web.UI } public static MasterPage GetCompiledMasterInstance (string virtualPath, string inputFile, HttpContext context) - { - string resolvedUrl = System.Web.Util.UrlUtils.ResolveVirtualPathFromAppAbsolute (virtualPath); - Type tmpType = PageMapper.GetObjectType (resolvedUrl); - if (tmpType == null) + { + string resolvedUrl; + if (VirtualPathUtility.IsAbsolute (virtualPath)) + resolvedUrl = virtualPath; + else if (VirtualPathUtility.IsAppRelative (virtualPath)) + resolvedUrl = System.Web.Util.UrlUtils.ResolveVirtualPathFromAppAbsolute (virtualPath); + else + resolvedUrl = VirtualPathUtility.Combine (VirtualPathUtility.GetDirectory (context.Request.FilePath, false), virtualPath); + Type tmpType = PageMapper.GetObjectType (context, resolvedUrl); + if (tmpType == null) throw new InvalidOperationException ("Master page '" + virtualPath + "' not found"); - - Object obj = Activator.CreateInstance (tmpType); + + Object obj = Activator.CreateInstance (tmpType); return (MasterPage) obj; }