I want to ask about Dynamic Database Driven Menu Loading in ASP.Net MVC3 razor .
This is my
1.View Code
2.Model for Menu
3.Model For Menu Items
4.Navigation Model Structure
In this project i have different User Logins .For each login they are limited by modules .So When a user enter into the app with their login ,they have only a limited access to their account.ie,User A can access only Accounts and Reprts,User B can access only Reports Like that.
To implement these things am loading menu from Database
@{
ViewBag.Title = "Elixir ERP V1.0 Beta";
Layout = "~/Views/Shared/_LayoutUser.cshtml";
}
<div class="main-container">
<div class="main-wrapper">
<div class="scroll-top">
<a href="#" class="tip-top" title="Go Top"></a>
</div>
<div class="left-bar merge-left">
<!--
<!--
@section leftnav{
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Elixir.Models
{
public class Menu
{
public Menu()
{
MenuItems = new List<MenuItem>();
}
public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Elixir.Models
{
public class MenuItem
{
public int Id { get; set; }
public int UserName { get; set; }
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
public string Url { get; set; }
public Menu ParentMenu { get; set; }
}
}
<ul class="side-navigation accordion" id="nav-accordion">
<li><a href="#"></a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^</i__^Create New User</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Users</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^View Users</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-table-2"__^Employee Management</a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Employee Registration</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Employees</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^View Employees</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-columns"__^DMIT Management</a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Scan Management</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Report Generation</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-laptop"__^Franchise Management </a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Franchise Registration</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Franchise Fee Management</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Franchise Account Management</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-font"__^Customer Management </a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Customer Registration</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Customer</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-cord"__^Counseling Management</a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Add Counseling Session</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Counseling Sessions</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-tools"__^Accounts</a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Income</a></li>
<li><a href="#">^__i class="icon-double-angle-right"__^Manage Expense</a></li>
</ul>
</li>
<li><a href="#">^__i class="icon-files"__^Reports</a>
<ul>
<li><a href="#">^__i class="icon-double-angle-right">Elxir Monthly Reports</a></li>
<li><a href="#">^__i class="icon-double-angle-right">Elixir Yearly Reports</a></li>
<li><a href="#">^__i class="icon-double-angle-right">Franchise Monthly Reports</a></li>
<li><a href="#">^__i class="icon-double-angle-right">Franchise yearly Reports</a></li>
</ul>
</li>
</ul>