我正在尝试设置模块化MVC4项目。
目前,webapplication引用了“Core”程序集。我的模块是核心。模块具有所需的控制器和视图。所以,我的视图和控制器是一个单独的项目。使用自定义视图引擎进行渲染。到目前为止一直很好..
但是,我想将模块从核心组件本身拆分。因此能够从不同的项目中“注入”我的模块。
现在,'核心'(也)负责为webapp创建所有导航属性,包含在导航类中,如下所示:
public static List<IModuleNavigationGroup> CRM() {
var NavigationGroups = new List<IModuleNavigationGroup>();
NavigationGroups.Add(Modules.ServiceDesk.Navigation.MenuItems());
NavigationGroups.Add(Modules.Relation.Navigation.MenuItems());
NavigationGroups.Add(Modules.Invoices.Navigation.MenuItems());
NavigationGroups.Add(Modules.Projects.Navigation.MenuItems());
return NavigationGroups;
}
这有效,但我不想让这种“CRM”方法从核心内部制作导航菜单。相反,我需要/想要创建一个新项目,引用核心并订阅初始化方法(或其他东西)。当调用此方法时,我想将模块中的导航添加到核心导航。
我的想法是以下
始终需要以下2个:
项目1 - 核心
项目2 - 演示文稿(UI)
“可选”项目,或容纳模块的项目
项目3 - 模块
现在,当(2)启动时,它将从(1)初始化导航。发生这种情况时,(1)必须知道从哪个项目返回(3)。我不想从(1)到(2或3)的引用,因为在不同的项目中模块可能会有所不同。
我在考虑(1)的代表,但(3)从未实例化。
提前致谢,我希望我的问题很明确。