冯 海

一个程序新人菜鸟的日记,希望大家多多关照。QQ:32316131

:bootstrap adminlte教程2:布局之前台模板

首先用了adminlte来做后台,为了难得麻烦,前台也用了,只是引用JS要少一些。

1.效果展示。

先上PC大屏的效果图。(这是很大众的)

 

缩小后:

 

在上头像点击下拉效果。

 

二.下面是实现步骤。

1.思路:首先user/login进行登录,然后这个login使用了无_loyout布局。登录后转到home/index,所以我在这个控制器中将所有登录用户的信息全Session进系统。

打开HomeController.cs,改写了其中的index方法。

[Authorize]
		public ActionResult Index()
		{
			Session["role"] = "";   //初设一个角色session
			string id = User.Identity.GetUserId();   //获取当前用户的ID
			if (string.IsNullOrWhiteSpace(id))
			{
				return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
			}


			var xxxx = UserManager.GetRoles(id) ; //获取该ID的角色序列
			if (xxxx == null)
			{
				Session["role"] = "无";
			}
			else
			{
				var userRoles = xxxx as IList<string>;   //对象转为string列


				foreach (var role in userRoles)
				{
					 
						Session["role"] = role;  //赋值角色的session 
					 
				}
			}
			User user = UserManager.FindById(id);    //实例化User类
			Session["username"] = user.UserName;
			Session["birthDate"] = user.BirthDate;
			Session["gender"] = user.Gender;
			Session["qq"] = user.QQ;
			Session["phone"] = user.PhoneNumber;
			Session["headerPic"] = user.HeaderPic;   //头像的URL session
			Session["userId11"] = id;   //当前用户的id



			Session["userIP"] = HttpContext.Request.UserHostAddress;   //当前电脑的ip
			
			return View(user);


		}

页index使用的是默认的_layout布局文件,我们只需修改那个布局文件即可。

2.重新设计_layout布局文件。  这个和我们说的adminlte第一课对应,只引用了start.htm示范中的JS和CSS,但我加入了一个我自己写的CSS,主要是调测了几个地方,不重要。

但在下面这句,实在是深蓝色,我难得麻烦,加上了两个重写。

<div class="wrapper" style="background:#ffffff;box-shadow:none;">

  下面是完整 的代码。

@using Microsoft.AspNet.Identity
@{

	string id = User.Identity.GetUserId();
	Session["rquesturl"]= Request.Url.ToString();
}
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>@ViewBag.Title </title>
	@Styles.Render("~/Content/adminlte/bootstrap/css")

	<link href="~/Content/jsdhh.css" rel="stylesheet" />
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
	<!-- Ionicons -->
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
	<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
	<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
	<!--[if lt IE 9]>
	<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
	<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
	<![endif]-->



</head>
<body class="hold-transition skin-blue  layout-boxed sidebar-mini">
	<div class=" container navtitle  hidden-xs">
		头部
	</div>
	<div class="wrapper" style="background:#ffffff;box-shadow:none;">

		<!-- Main Header -->
		<header class="main-header">

			<!-- Logo -->
			<a href="~/home/index" class="logo">
				<!-- mini logo for sidebar mini 50x50 pixels -->
				<span class="logo-mini"><b>A</b>LT</span>
				<!-- logo for regular state and mobile devices -->
				<span class="logo-lg"><b>Admin</b>LTE</span>
			</a>

			<!-- Header Navbar -->
			<nav class="navbar navbar-static-top" role="navigation">
				<!-- Sidebar toggle button-->
				<div>
					<div class="navbar-header">
						<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
							<span class="icon-bar">---</span>
							<span class="icon-bar">---</span>
							<span class="icon-bar">---</span>
						</button>
					</div>
					<div class="navbar-collapse collapse">
						<ul class="nav navbar-nav">
							<li>@Html.ActionLink("主页", "Index", "Home")</li>
							<li>@Html.ActionLink("关于", "About", "Home")</li>
							<li>@Html.ActionLink("联系方式", "Contact", "Home")</li>
						</ul>

						<!-- Navbar Right Menu -->
						<div class="navbar-custom-menu">
							<ul class="nav navbar-nav">
								<!-- Messages: style can be found in dropdown.less-->
								<li class="dropdown messages-menu">
									<!-- Menu toggle button -->
									<a href="#" class="dropdown-toggle" data-toggle="dropdown">
										<i class="fa fa-envelope-o"></i>
										<span class="label label-success">4</span>
									</a>
									<ul class="dropdown-menu">
										<li class="header">You have 4 messages</li>
										<li>
											<!-- inner menu: contains the messages -->
											<ul class="menu">
												<li>
													<!-- start message -->
													<a href="#">
														<div class="pull-left">
															<!-- User Image -->
															<img src="~/Content/Adminlte/dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
														</div>
														<!-- Message title and timestamp -->
														<h4>
															Support Team
															<small><i class="fa fa-clock-o"></i> 5 mins</small>
														</h4>
														<!-- The message -->
														<p>Why not buy a new awesome theme?</p>
													</a>
												</li>
												<!-- end message -->
											</ul>
											<!-- /.menu -->
										</li>
										<li class="footer"><a href="#">See All Messages</a></li>
									</ul>
								</li>
								<!-- /.messages-menu -->
								<!-- Notifications Menu -->
								<li class="dropdown notifications-menu">
									<!-- Menu toggle button -->
									<a href="#" class="dropdown-toggle" data-toggle="dropdown">
										<i class="fa fa-bell-o"></i>
										<span class="label label-warning">10</span>
									</a>
									<ul class="dropdown-menu">
										<li class="header">You have 10 notifications</li>
										<li>
											<!-- Inner Menu: contains the notifications -->
											<ul class="menu">
												<li>
													<!-- start notification -->
													<a href="#">
														<i class="fa fa-users text-aqua"></i> 5 new members joined today
													</a>
												</li>
												<!-- end notification -->
											</ul>
										</li>
										<li class="footer"><a href="#">View all</a></li>
									</ul>
								</li>
								<!-- Tasks Menu 旗子任务图标 -->
								<li class="dropdown tasks-menu">
									<!-- Menu Toggle Button -->
									<a href="#" class="dropdown-toggle" data-toggle="dropdown">
										<i class="fa fa-flag-o"></i>
										<span class="label label-danger">9</span>
									</a>
									<ul class="dropdown-menu">
										<li class="header">You have 9 tasks</li>
										<li>
											<!-- Inner menu: contains the tasks -->
											<ul class="menu">
												<li>
													<!-- Task item -->
													<a href="#">
														<!-- Task title and progress text -->
														<h3>
															Design some buttons
															<small class="pull-right">20%</small>
														</h3>
														<!-- The progress bar -->
														<div class="progress xs">
															<!-- Change the css width attribute to simulate progress -->
															<div class="progress-bar progress-bar-aqua" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
																<span class="sr-only">20% Complete</span>
															</div>
														</div>
													</a>
												</li>
												<!-- end task item -->
											</ul>
										</li>
										<li class="footer">
											<a href="#">View all tasks</a>
										</li>
									</ul>
								</li>
								<!-- User Account Menu -->
								<li class="dropdown user user-menu" style="z-index:999;">
									<!-- Menu Toggle Button -->
									<a href="#" class="dropdown-toggle" data-toggle="dropdown">
										<!-- The user image in the navbar-->
										<img src=@Session["headerPic"] class="user-image" alt="User Image">
										<!-- hidden-xs hides the username on small devices so only the image appears. -->
										<span class="hidden-xs">@Session["username"] -[ @Session["role"] ]</span>
									</a>
									<ul class="dropdown-menu">
										<!-- The user image in the menu -->
										<li class="user-header">
											<img src=@Session["headerPic"] class="img-circle" alt="User Image">

											<p>
												qq:@Session["qq"]  | Tel:@Session["phone"]
												<small>生日:@Session["birthDate"]</small>
											</p>
										</li>
										<!-- Menu Body -->
										<li class="user-body">
											<div class="row">
												<div class="col-xs-4 text-center">
													<a href="~/User/ChangePassword?id= @User.Identity.GetUserId()">改密码</a>
												</div>
												<div class="col-xs-4 text-center">
													<a href="~/User/DetailsList?id=@Session["userId11"]">查看资料</a>
												</div>
												<div class="col-xs-4 text-center">
													<a href="~/User/Edit?id=@Session["userId11"]">修改资料</a>
												</div>
											</div>
											<!-- /.row -->
										</li>
										<!-- Menu Footer-->
										<li class="user-footer">
											<div class="pull-left">
												<a href="~/Admin/index" class="btn btn-default btn-flat">后台</a>
											</div>
											@using (Html.BeginForm("LogOff", "User", FormMethod.Post, new { id = "logoutForm" }))
											{    @Html.AntiForgeryToken()
												<div class="pull-right">
													<a href="javascript:document.getElementById('logoutForm').submit()">注销</a>
												</div>}
										</li>
									</ul>
								</li>

							</ul>
						</div>





					</div>
				</div>





			</nav>
		</header>

		<!-- Content Wrapper. Contains page content -->
		<div class="container body-content">

			<!-- Content Header (Page header) -->
			<!-- 最上面的HEADER -->
			@RenderBody()


		</div>
		 

	</div>
	<!--end 中间内容 Content Wrapper. Contains page content -->
	<!-- Main Footer -->

	<footer class="container dhhfoot">
		<p>© @DateTime.Now.Year - 我们自己的程序 </p>
	</footer>


	 

		

		@Scripts.Render("~/bundles/adminlte")
		@RenderSection("scripts", required: false)
		<script src="~/Scripts/jquery.validate.js"></script>
		<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>


</body>
</html>

  注意在其,用户头像下拉的修改密码,详细资料,要送一个当前用户的ID作参数。

 

posted @ 2017-05-21 19:24  秋天来了哟  阅读(870)  评论(0编辑  收藏  举报
认识就是缘份,愿天下人都快乐!
QQ: 32316131
Email: 32316131@qq.com