我有两个不同的项目,部署时实际上是两个不同的网站,例如WebA和WebB。在使用的控制器和模型方面,两个网站的结构均相同。但是,前端非常不同。他们每个人都有自己的UI和适合他们的jquery插件。

为了减少代码重复,我建议这两个项目都从另一个引用的项目[controllerDLL]中的控制器继承。 ControllerDLL是一个项目,将具有用于调用业务层和返回json序列化模型对象的所有逻辑。 WebA和WebB都只具有从基础项目[controllerDLL]继承的空控制器类。这样我感觉到控制器代码没有重复。

除了我建议的方法之外,还有谁能告诉我实现控制器重用的更好方法吗? asp.net mvc 4是否提供任何内置方法来更好地做到这一点?我可以在这里高效使用AREAS吗?我应该看看DotNetNuke吗?还是我的方法是最好的前进方向?我不是在寻找如何将控制器移到另一个项目中。我只想知道实现控制器重用的选择。

谢谢。

最佳答案

看看这个SO question。您可以将所有视图保留在同一项目中,并使用自定义视图引擎查找视图(基于web.config设置)。

例如,您可能有2个文件夹/ Views / WebA和/ Views / WebB。自定义视图引擎可以查找web.config设置以找出要使用的文件夹并在其中搜索视图。这样,您将不必复制控制器代码或将其移动到单独的项目中。它只会在运行时将一个表示层换成另一个表示层。

08-06 00:49