在其他位置查找MVC视图

时间:2012-10-09 15:01:53

标签: asp.net-mvc asp.net-mvc-3

我在Asp.net MVC3上有三个网络项目:

Portal.Web - >通用控制器和模型

Portal.WebsiteCustom - >自定义网站1

Portal.WebsiteCustom2 - >自定义网站2

两个自定义网站都使用Portal.Web的控制器和模型。

现在我想在这个项目中添加公共视图,并设置MVC以查看Portal.Web项目的常见视图。

这可能吗?

我怎么能成就这个?

感谢。

2 个答案:

答案 0 :(得分:1)

  

这可能吗?

  

我怎么能成就这个?

您必须将这些视图作为资源嵌入到程序集中,然后在客户端MVC项目中引用程序集。接下来,您必须编写一个自定义虚拟路径提供程序,该提供程序能够将这些视图检索为嵌入式资源,而不是在当前项目文件夹中查找它们,这是默认进程。

您可以使用允许Razor Generator packagesimplify the process,因为它已经为您提供了您不需要手动编写的自定义虚拟提供程序。这是一个outdated article你也可以检查。

答案 1 :(得分:0)

您可以编写自己的实现IViewEngine的视图引擎,它有一个方法可以查找在哪里搜索视图。您还可以扩展VirtualPathProviderViewEngine并覆盖位置以添加自定义文件位置以查找视图。

此类内容的示例代码位于this Stack Overflow answer