ASP.NET MVC在单独的程序集中编译视图

时间:2009-07-21 09:34:18

标签: asp.net-mvc

我正在创建一个解决方案,我有几个项目,每个项目都负责处理实体,MVC视图和某种控制器。也就是说,一个涉及会计,另一个涉及公司管理等。这使我们能够在多个解决方案中重复使用它们。

我可以通过注册VirtualPathProvider来使用解决方案的核心项目(标准MVC项目)中的不同程序集中的视图,以及将视图作为嵌入式资源进行处理的技巧,以便可以从在他们的DLL之外。

这种方法的主要(和巨大的)缺点是通过设置视图,因为嵌入式资源消除了编译的可能性,使用IntelliSense并调试它们,因此它使开发变得非常棘手,并且维护更是如此。

有没有办法在DLL中编译这个视图?我在那里遗漏了什么,或者还有其他更好的方法吗?

注意:我可以在我的MVC项目中编译视图,但不能编译DLL中的视图。

1 个答案:

答案 0 :(得分:1)

我不知道这对你有帮助,但是......

有一段时间我想和你做同样的事情直到我发生了什么:只要视图以.aspx和.ascx文件的形式存在,它们就可以用来“剥离”应用程序,因为它们不属于编译的应用程序。换句话说,在最终的组合应用程序中将所有视图作为未编译文件的好处太大了,不容忽视,IMO。

所以我最终决定最终组成的应用程序负责所有的呈现方式。这也意味着如果我有两个不同的应用程序重用相同的模块,它们可以非常不同地呈现它们。

这些文件无论如何都应该只包含 渲染代码,所以应该由HTML / Graphics设计师开发 - 而不是开发人员。

所有控制器和ViewModel我仍然在单独的模块(.dlls)中实现。