[.net] mvc 웹 프로젝트(2)
데이터 구성
Data 프로젝트에 Model, DbContext, DataInitializer 생성
메뉴 모델 구성
- 메뉴는 상단에 대분류, 대분류 클릭하면 사이드 메뉴에 서브메뉴 출력
- 서브메뉴는 부모, 자식 노드 구성할 수 있도록 할 것
public class Menu
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public ICollection<SubMenu> SubMenus { get; set; }
}
public class SubMenu
{
public int Id { get; set; }
public string Name { get; set; }
public string Href { get; set; }
public int? ParentSubMenuId { get; set; }
public SubMenu ParentSubMenu { get; set; }
public ICollection<SubMenu> SubMenus { get; set; } = new List<SubMenu>();
public int MenuId { get; set; }
public Menu Menu { get; set; }
}
메뉴 데이터 구성
- DB 구축하기 전에는 DataInitializer에서 임시로 데이터 등록
var standardInfo = new Menu
{
Name = "기준정보",
Category = "standard-info",
SubMenus = new List<SubMenu>
{
new SubMenu { Name = "기준정보1", Href = "/Standard/StandardInfo1" },
new SubMenu { Name = "기준정보2", Href = "/Standard/StandardInfo2" },
new SubMenu { Name = "기준정보3", Href = "/Standard/StandardInfo3" }
}
};
var systemGroup1 = new SubMenu
{
Name = "시스템 그룹1",
Href = "#",
SubMenus = new List<SubMenu>
{
new SubMenu { Name = "시스템1", Href = "/System/System1" },
new SubMenu { Name = "시스템2", Href = "/System/System2" }
}
};
var systemGroup2 = new SubMenu
{
Name = "시스템 그룹2",
Href = "#",
SubMenus = new List<SubMenu>
{
new SubMenu { Name = "시스템3", Href = "/System/System3" },
new SubMenu { Name = "시스템4", Href = "/System/System4" },
new SubMenu { Name = "시스템5", Href = "/System/System5" }
}
};
foreach (var subMenu in systemGroup1.SubMenus)
{
subMenu.ParentSubMenu = systemGroup1;
}
foreach (var subMenu in systemGroup2.SubMenus)
{
subMenu.ParentSubMenu = systemGroup2;
}
var system = new Menu
{
Name = "시스템",
Category = "system",
SubMenus = new List<SubMenu> { systemGroup1, systemGroup2 }
};
systemGroup1.Menu = system;
systemGroup2.Menu = system;
context.Menus.AddRange(standardInfo, system);