我想实现ASP.Net MVC应用程序,它可以动态组装控制器,视图和内容文件(如JS,图像......)。我有一个基本的web项目,它包含一些基本的控制器,视图和其他内容文件,但应该可以扩展/替换所有这些项目。
这种架构的主要原因是我有一个应用程序应该被更多的客户使用。对于所有客户来说,有许多基本的共同点是相同的,但是对于每个客户来说,还有许多应该表现/看起来不同的东西。有些客户也会有其他人不具备的特定功能等。我知道如何在模型和服务层解决这个问题(继承+在IoC容器中注册适当的服务),但我不知道从哪里开始使用ASP .Net MVC应用程序。
我的基本想法就是会有一些基本的项目,包括常见的控制器,视图,JS文件等。还可能有另一个项目可以替换/添加一些应用程序部分 - 控制器,视图,JS文件,图像。我可以通过使用IoC作为控制器提供程序轻松解决控制器,但是可以轻易地以某种方式“覆盖”视图和静态文件吗? VirtualPathProvider魔术+放置视图+静态文件是为了能够解决这个问题我需要做的所有事情吗?
我很感激任何关于此帖子和其他信息来源的博客文章的链接。
答案 0 :(得分:0)
我建议你不要看看ASP.NET MVC 2中的Areas功能和MvcContrib Portable Areas内容的改进。
背后的想法是在一个程序集中嵌入与该视图相关的所有控制器和模型的所有视图,因此您可以使应用程序的某个区域“可移植”。
我认为将“覆盖”默认视图将替换放置在应该找到它的真实Web应用程序文件夹中并不困难。