Asp.net mvc 3 MVC 3加载项视图试图从加载项解析_ViewStart.cshtml

Asp.net mvc 3 MVC 3加载项视图试图从加载项解析_ViewStart.cshtml,asp.net-mvc-3,virtualpathprovider,razor,Asp.net Mvc 3,Virtualpathprovider,Razor,我一直在浏览互联网,学习如何让ASP.NETMVC3站点使用MEF。我们的想法是建立一个模块化的网站,这样我们就可以根据需要扩展功能。我几乎每一段代码都在工作,但出于某种原因,当我试图从外接程序加载索引视图时,它试图从外接程序加载_ViewStart.cshtml文件,而不是从主MVC站点加载 有人遇到过这种情况吗?如果有,解决方法是什么?您确实知道如何解决ViewStart层次结构,不是吗?基本上,层次结构中最接近视图的ViewStart优先显示。在您的情况下,最有可能显示外接程序中的view

我一直在浏览互联网,学习如何让ASP.NETMVC3站点使用MEF。我们的想法是建立一个模块化的网站,这样我们就可以根据需要扩展功能。我几乎每一段代码都在工作,但出于某种原因,当我试图从外接程序加载索引视图时,它试图从外接程序加载_ViewStart.cshtml文件,而不是从主MVC站点加载


有人遇到过这种情况吗?如果有,解决方法是什么?

您确实知道如何解决ViewStart层次结构,不是吗?基本上,层次结构中最接近视图的ViewStart优先显示。在您的情况下,最有可能显示外接程序中的viewstart

如果不希望显示该视图,请删除或删除它,层次结构中的下一个ViewStart将被赋予显示优先级,并将按照您的需要显示和使用它

让我知道这是否对您有用,因为按照您描述的方式,它正在按照我的理解进行/工作。

如果您使用此方法:
要“嵌入”视图(它们实际上已编译),_viewstart将首先在您的物理路径中查找(因此您的主mvc站点),如果在那里找不到,它将在dll中查找作为已编译资源的文件

能否提供更多有关视图文件位置的详细信息以及所看到的与所期望的之间的差异?视图文件是*.dll中嵌入的资源。*.dll部署在父站点的~/bin/文件夹中。正在按预期访问cshtml页面,但视图引擎似乎也在访问virtualpathprovider以提取_ViewStart.cshtml文件。我想知道我是否需要在某处编辑一些路径检测。。。让我重新创建项目,一旦我回到我所在的位置,我会在这里发布下载。如果您只发布虚拟文件和真实文件的示例布局,会更容易。如果te虚拟文件位于类似~\views\home\index.cshtml的位置,则您看到的行为是正确的。VirtualPathProvider的目的是合并以使物理路径和虚拟路径无法区分。