public class MyCustomRazorHostFactory : WebRazorHostFactory { public override System.Web.WebPages.Razor.WebPageRazorHost CreateHost(string virtualPath, string physicalPath) { // Implementation stolen from MvcRazorHostFactory :) var host = base.CreateHost(virtualPath, physicalPath); if (!host.IsSpecialPage) { return new MyCustomRazorHost(virtualPath, physicalPath); } return host; } } public class MyCustomRazorHost : MvcWebPageRazorHost { public MyCustomRazorHost(string virtualPath, string physicalPath) : base(virtualPath, physicalPath) { var vpp = (EmbeddedResourceVirtualPathProvider.Vpp) System.Web.Hosting.HostingEnvironment.VirtualPathProvider; var resource = vpp.GetResourceFromVirtualPath(virtualPath); if (resource != null) { PhysicalPath = resource.Filename; } } }