学技术这件事儿本来就是学习现有的东西,然后变成自己的,本文当然也是借鉴的别人的东西,写出来作为一个对知识的巩固。
  1.网站用的是MVC模式,新建一个MVC项目,建立一个APP1Controller,作为页面的控制器,首页采用的是传统的frameset布局,没有用到前段的UI框架,项目架构示意图:

后台控制器中目前是这样的一个结构:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace App1.Controllers
{
public class App1Controller : Controller
{
//
// GET: /App1/ public ActionResult Index()
{
ViewBag.Message = "Welcome!";
return View();
} public ActionResult Top()
{
ViewBag.UserName = "超级管理员";
ViewBag.AvailableBalance = "";
return View();
} public ActionResult Left()
{
return View();
} public ActionResult Right()
{
return View();
}
}
}

下面是前台的View页面:

首先附一张效果图:

1)Index.cshtml:

@{
ViewBag.Title = "";
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<meta charset="utf-8" />
<title>Index</title>
</head>
<frameset rows="104,*,30" cols="*" frameborder="no" border="0" framespacing="0">@*顶部宽104px,底部30px,中间部分自适应*@
<frame src="App1/Top" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
<frameset cols="193,*" frameborder="no" border="0" framespacing="0" id="middenFram">@*左侧193px,右侧自适应*@
<frame src="App1/Left" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame"/>
<frame src="App1/Right" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<frame src="/Content/Bootom.html" name="topFrame" scrolling="No" noresize="noresize" id="bootomFrame" title="topFrame" />
</frameset>
<noframes>
<body></body>
</noframes>
</html>

说明:这里frameset的布局方式算是比较老的一种方式了,因为没有用到UI框架所以此处不做过多的追究,大体就是一个Top/Left/Right/Bottom的经典布局模式。

2)Top.cshtml:

@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<title>Top</title>
<meta name="viewport" content="width=device-width" />
<meta charset="utf-8" />
<link href="~/Content/sharestyle.css" rel="stylesheet" />
<style type="text/css">
.hightCss {
color: yellow;
} body {
margin: 0px;
padding: 0px;
}
</style>
<script src="~/Scripts/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//控制Left视图中菜单模块的显示
function showLeftList(divId) {
self.parent.frames["leftFrame"].showDivMenu(divId);
}
//菜单键及高亮显示
$(function () {
$(".nav_list ul li a").click(function () {
$(".nav_list ul li a").css("background-color", "");
$(".nav_list ul li a").css("color", "#ceebff");
$(this).css("background-color", "#66d354");
$(this).css("color", "white");
});
});
</script>
</head>
<body>
<div class="index_header">
<div class="index_headertop">
<div class="index_logo">
<a href="#">
<img src="/Images/icon_11.png" /></a>
</div>
<div class="lgstatus">
欢迎您,@ViewBag.UserName<i><em>20</em></i>可用余额:
<span>$@ViewBag.AvailableBalance</span>&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="在线充值" class="btsty2" />
</div>
</div>
<div class="clear"></div>
<div class="index_headerbot">
<div class="nav_list">
<ul>
<li><a href="#" onclick="showLeftList('divOrder')">业务管理</a>
<div class="nav_out" style="display: none;">
<i></i>
<p><a href="#">订单管理</a></p>
<p><a href="#">提单管理</a></p>
<p><a href="#">身份证管理</a></p>
</div>
</li>
<li class="slctd" onclick="showLeftList('divFinancial')"><a href="#">财务管理</a>
<div class="nav_out" style="display: none;">
<i></i>
<p><a href="#">财务流水</a></p>
<p><a href="#">提单对账</a></p>
<p><a href="#">运单对账</a></p>
<p><a href="#">异常费用对账</a></p>
<p><a href="#">充值记录</a></p>
</div>
</li>
<li><a href="#" onclick="showLeftList('divSysManage')">系统管理</a>
<div class="nav_out" style="display: none;">
<i></i>
<p><a href="#">基本信息管理</a></p>
<p><a href="#">认证管理</a></p>
<p><a href="#">修改密码</a></p>
</div>
</li>
</ul>
</div>
<div class="fucnbx"><span><a href="#"><i class="ilChannel"></i>运单打印客户端下载</a></span> <span><a href="#"><i class="i2"></i>API文档</a></span> <span><a href="#"><i class="i3"></i>退出</a></span> </div>
</div>
</div>
</body>
</html>

这里对应着效果图看一下,基本上就是点击Top页上面的标题,然后再Left页显示对应的下面的div里的内容(当前设置为不不显示了),点击事件是通过js代码实现的showLeftList方法,该方法里面有一个参数divId,然后通过 self.parent.frames["leftFrame"].showDivMenu(divId)来实现很显然是在Left页面中实现showDivMenu方法。

3)Left.cshtml:

@{
Layout = null;
} <!DOCTYPE html> <html lang="zh">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8" />
<link href="~/Content/sharestyle.css" rel="stylesheet" />
<link href="~/Content/main.css" rel="stylesheet" />
<style type="text/css">
body {
margin: 0px;
padding: 0px;
}
</style>
<script src="~/Scripts/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
function ShowMenuList(id) {
var objectobj = document.getElementById(id);
var dtObj = document.getElementById("dt_" + id);
if (objectobj.style.display == "none") {
objectobj.style.display = "";
dtObj.setAttribute("class", "head2");
//其它菜单折叠
$(dtObj).parent().parent().find("dt").not(dtObj).attr("class", "head1"); //折叠
$(objectobj).parent().parent().find("ul").not(objectobj).css("display", "none"); //隐藏菜单子项
} else {
objectobj.style.display = "none";
dtObj.setAttribute("class", "head1");
}
}
//控制菜单模块的显示和隐藏
function showDivMenu(divId) {
$("#" + divId).css("visibility", "visible");
$("#" + divId).siblings("div").css("visibility", "hidden");
}
$(function () {
$(".box_n li a").click(function () {
$(".box_n li a").removeClass("nav_sub");
$(this).addClass("nav_sub");
});
});
function goNewPage(url, name) {
self.parent.frames["mainFrame"].addTab(url, name);
}
</script>
</head>
<body>
<div class="leftbar" id="divOrder">
<dl>
<dt class="head2" id="dt_ulOrder" onclick='ShowMenuList("ulOrder")'>订单管理</dt>
<ul class="box_n" id="ulOrder">
<li><a href="#">批量新建订单</a></li>
<li><a href="#">手工新建订单</a></li>
<li><a class="nav_sub" href="#">订单草稿<span>(3)</span></a></li>
<li><a href="#">已确认订单<span>(3)</span></a></li>
<li><a href="#">待发货订单<span>(3)</span></a></li>
<li><a href="#">已发货订单<span>(0)</span></a></li>
<li><a href="#">订单回收站<span>(0)</span></a></li>
<li><a href="#">退件<span>(0)</span></a></li>
<li><a href="#">批量修改订单</a></li>
</ul>
</dl>
<dl>
<dt class="head1" id="dt_ulLading" onclick='ShowMenuList("ulLading")'>提单管理</dt>
<ul class="box_n" id="ulLading" style="display: none;">
<li><a href="#">创建托盘</a></li>
<li><a href="#">未交货托盘<span>(6)</span></a></li>
<li><a href="#">已交货托盘</a></li>
<li><a href="#">创建交货单</a></li>
<li><a href="#">交货单列表</a></li>
<li><a href="#">待预扣提单<span>(3)</span></a></li>
<li><a href="#">已预扣提单</a></li>
</ul>
</dl>
<dl>
<dt class="head1" id="dt_ulIdentityCard" onclick='ShowMenuList("ulIdentityCard")'>身份证管理</dt>
<ul class="box_n" id="ulIdentityCard" style="display: none;">
<li><a href="#">待验证身份证<span>(3)</span></a></li>
<li><a href="#">无需验证身份证<span>(3)</span></a></li>
<li><a href="#">已验证身份证<span>(3)</span></a></li>
</ul>
</dl>
</div>
<div class="leftbar" id="divSysManage"></div>
<div class="leftbar" id="divFinancial">
<dl>
<dt id="dt_ulChannel" class="head2" onclick='ShowMenuList("ulChannel")'>渠道费用管理</dt>
<ul class="box_n" id="ulChannel">
<li><a href="#" onclick="goNewPage('a.html','渠道分类');">渠道分类</a></li>
<li><a target="mainFrame" id="channelManage" onclick="goNewPage('/Channel/Index','渠道管理');">渠道管理</a></li>
<li><a href="#">分区管理</a></li>
<li><a href="#">价格管理</a></li>
</ul>
</dl>
<dl>
<dt id="dt_ulFinancial" class="head1" onclick='ShowMenuList("ulFinancial")'>财务管理</dt>
<ul class="box_n" id="ulFinancial" style="display: none;">
<li><a href="#">财务流水</a></li>
<li><a href="#">提单对账</a></li>
<li><a href="#">运单对账</a></li>
<li><a href="#">异常费用对账</a></li>
<li><a href="#">充值记录</a></li>
</ul>
</dl>
</div>
</body>
</html>
本页面实现了Top页面中点击标题显示制定内容的功能,此外还有子标题的显示是通过ShowMenuList方法实现,参数为要显示的字标题列表的ul的ID属性。
4)Right.cshtml:
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<meta charset="utf-8" />
<style type="text/css">
html, body {
margin: 0px;
font-family: Arial, sans-serif;
font-size: 12px;
height: 100%;
padding: 2px 4px 4px 0px;
overflow: hidden;
}
</style>
<title>Right</title>
</head>
<body>
<div class="rightcont">
Hello,World!
</div>
</body>
</html>

这里面可以显示网站的主要内容了。

最后附录一下本网站需要用到的Js文件和Css样式文件下载链接:下载

下一节将实现一些面板的展开隐藏和Tab页效果。

ASP.NET MVC 搭建简单网站 --1.前端页面布局和基本样式实现的更多相关文章

  1. ASP.NET MVC搭建项目后台UI框架—1、后台主框架

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  2. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  3. ASP.NET MVC搭建项目后台UI框架—7、统计报表

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...

  4. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  5. ASP.NET MVC创建的网站

    ASP.NET MVC创建的网站   最近在写一个网站,昨天刚写完,由于要和朋友一起测试,但是他电脑上没有环境,所以希望我在自己电脑上部署一下,让他直接通过浏览器来访问来测试,所以从昨晚到今天上午,通 ...

  6. FineAdmin.Mvc 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统

    FineAdmin.Mvc 介绍 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统RightControl后台layui模板不太好看,换成ok-admin v2.0重写一遍.项目 ...

  7. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  8. ASP.NET MVC搭建项目后台UI框架—2、菜单特效

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  9. ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

随机推荐

  1. 并行编程之多线程共享非volatile变量,会不会可能导致线程while死循环

    背景 大家都知道线程之间共享变量要用volatilekeyword.可是,假设不用volatile来标识,会不会导致线程死循环?比方以下的伪代码: static int flag = -1; void ...

  2. Mac Pro更换SSD后,在Win7下启用ACHI的方法AHCI

    在Mac Pro下更换SSD后,如果安装Win7,要将SSD改为AHCI模式是非常麻烦的.本文介绍如何将Mac的Win7下的SSD改为AHCI方式驱动,及几种常见问题的处理. 一.当Lion与Win7 ...

  3. CSS:表格样式(设置表格边框/文字/背景的样式)

    使用CSS能够制作出十分精美的表格. 代码整理自w3school:http://www.w3school.com.cn 效果图: 代码: <!DOCTYPE html PUBLIC " ...

  4. Android Settings 导入eclipse

    1.加载源码 Android Project from Existing Code 选择源码工程Settings: 2.加载所需要的jar包 (改下名字) out/target/common/obj/ ...

  5. About gpref O(n2) --> O(1)

    http://www.ibm.com/developerworks/cn/linux/l-gperf.html 命令行处理和 gperf 的作用 命令行处理一直以来都是软件开发中最容易被忽视的领域.几 ...

  6. 将CGPoint、CGSize、CGRect等放进数组的方法

    在oc中,数组中只能存放NSObject类型的数据,所以如果将CGPoint.CGSize.CGRect这些数据存到数组中,我们需要将他们转换为对象类型才可以, 可以借助NSValue,它是用来将基本 ...

  7. ruby 把字符串转为正则匹配表达式

    需求 函数,需要通过参数传递字符串,用来做正则匹配 reg = '[0-9]+' def func(str, reg) str.scan(reg) end 由于 reg 在其它地方定义, reg 是字 ...

  8. C#如何加载程序运行目录外的程序集

    我们的应用程序部署的时候,目录结构一般不会只有运行程序的目录这一个,我们可能在运行目录下建子目录,也可能使用System32目录,也可能使用其它第三方的程序集..Net程序集 首先会在GAC中搜索相应 ...

  9. 非XA式Spring分布式事务

    Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式.理想的实现取决于你的应用程序使用何种资源,你 ...

  10. hdu 1095 A+B for Input-Output Practice (VII)

    A+B for Input-Output Practice (VII) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32 ...