如何使用RazorEngine加载外部布局文件?

如何使用RazorEngine加载外部布局文件?,razor,viewengine,Razor,Viewengine,我已经尝试了好几天(实际上是好几天)在Razor中使用“外部”文件(使用ashx处理程序从不同的服务器提供)作为布局 @{ Layout = "http://someServer/templates.ashx?path=/my/template.cshtml"; } 这给了我一个关于路径必须是虚拟路径的错误 我已经尝试了我能想到的一切:VirtualPathProviders、定制RazorViewEngines,等等 没有任何帮助,有人这样做了吗?或者有人能给我一个提示吗?制作一个V

我已经尝试了好几天(实际上是好几天)在Razor中使用“外部”文件(使用ashx处理程序从不同的服务器提供)作为布局

@{
    Layout = "http://someServer/templates.ashx?path=/my/template.cshtml";
}
这给了我一个关于路径必须是虚拟路径的错误

我已经尝试了我能想到的一切:
VirtualPathProviders
、定制
RazorViewEngines
,等等


没有任何帮助,有人这样做了吗?或者有人能给我一个提示吗?

制作一个
VirtualPathProvider
,它处理以魔法令牌开头的虚拟路径,并将所有其他路径传递给它的用户。
例如:

public override VirtualFile GetFile(string virtualPath) {
    if (virtualPath.StartsWith("~/MySpecialTemplateServer"))
        return new MyServerVirtualFile(virtualPath);
    else
        return Previous.GetFile(virtualPath);
}

VirtualPathProvider应该可以工作。传递到VPP的字符串仍然需要看起来像虚拟路径。是的,问题是,VirtualPathProvider以某种方式覆盖了默认路径,因此引擎尝试从外部位置加载所有视图(->使用自定义VirtualPathProvider)。使自定义VPP将正常路径转发到默认路径。确定。。我该怎么做?(作为回答,我接受;-)