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