如何在ASP.NET MVC 3中创建可配置的系统?

时间:2012-02-24 17:38:02

标签: asp.net-mvc asp.net-mvc-3 c#-4.0

方案是:我工作的公司需要运送产品,其特征是由合同定义的。

  • 一个客户需要一个完整的系统,包含所有报告功能和内容
  • 其他客户端(或更准确地说,产品)只需要显示和下载数据库中的数据,并且在不久的将来可能会出现许多其他产品情况。

虽然不是创建不同的系统并为每个系统添加和纠正错误,但能够设置将要发送给客户端的内容似乎是合理的。我正试图找到一个优雅的解决方案...我的控制器和我的模型将保持完全相同,但我的观点将改变大的时间。

关于如何做这项工作的任何想法?

3 个答案:

答案 0 :(得分:1)

不确定我是否理解正确。您有两个不同的功能集,并希望将它们加入到同时具有这两个功能的单个代码库中?它们在什么级别相似?

我正在为数据和逻辑层(More Here)维护单个代码库,并且在表示层上的差异数量下降执行以下操作之一:

  • 创建另一个使用我来自其他层的“共享”库的asp.net mvc3项目
  • 在一个单独的asp.net mvc3项目上创建所有功能,然后处理路由以启用/禁用某些内容,如果需要,您也可以在某些配置文件上执行此操作,因此不需要为每个客户端进行特定构建

没有更多细节,我不能说太多。

答案 1 :(得分:0)

当每个配置只有您的视图不同时,可能的解决方案是在每个视图文件夹中创建子文件夹。例如Views/Home/Config1/Index.cshtmlViews/Home/Config2/Index.cshtml等。 通过覆盖控制器中的View(和PartialView)函数(例如创建MasterController),您可以自动切换到视图目录中的右侧子文件夹。

答案 2 :(得分:0)

您是否应该将此信息放入数据库中(例如,用户可以访问哪些视图)并根据此信息构建菜单?

这意味着你的整个菜单结构将变为动态(所以这会改变很多,因为我想你的菜单是静态的)。但它会解决你的问题,我想..