1. 登錄界面
login.css
body, html { height: 100%; } .layui-admin-login-header { padding: 20px; text-align: center; } .layui-admin-login-header h1 { color: #009688; font-family: "Helvetica Neue, Helvetica, PingFang SC, 微軟雅黑, Tahoma, Arial, sans-serif"; font-weight: bold; margin-bottom: 10px; } .layui-admin-login-header p { color: white; font-family: "Helvetica Neue, Helvetica, PingFang SC, 微軟雅黑, Tahoma, Arial, sans-serif"; font-weight: bold; margin-bottom: 10px; } .layui-admin-login { width: 24%; margin: 0 auto; position: absolute; top: 20%; left: 37%; box-shadow: 0 -15px 30px #0d957a; border-radius: 5px; padding: 2%; z-index: 1000; } .layui-admin-login .layui-footer { color: white; } .layui-admin-login .layui-form-checkbox { margin-left: 0px; } /*chrome瀏覽器透明有點問題*/ .layui-form label, input { background-color: transparent !important; color: white !important; }
login.cshtml頁面
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link href="~/Content/layui-v2.5.6/css/layui.css" rel="stylesheet" /> <link href="~/Content/layui-v2.5.6/css/login.css" rel="stylesheet" /> </head> <body class="layui-layout-body" style="background-color:black"> <div class="layui-fluid" style="padding: 0px;"> <canvas id="particle"></canvas> <br /> <div class="layui-form layui-form-pane layui-admin-login"> <div class="layui-admin-login-header"> <h1>登陸</h1> </div> <div class="layui-form-item"> <label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label> <div class="layui-input-block"> <input required lay-verify="required" name="txtName" class="layui-input" type="text" placeholder="請輸入賬號" autocomplete="off" /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label> <div class="layui-input-block"> <input required lay-verify="required" name="txtPwd" class="layui-input" type="password" placeholder="請輸入密碼" autocomplete="off" /> </div> </div> <div class="layui-form-item"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="loginxxx"> <i class="layui-icon layui-icon-ok-circle"></i>登陸 </button> </div> </div> </div> </div> <script src="~/Content/layui-v2.5.6/layui.js"></script> <script> // 登錄 需要做表單提交給后台, 或者數據收集之后提交給后台 layui.use(['layer', 'form','jquery'], function () { var layer = layui.layer; var form = layui.form, $ = layui.jquery; form.on("submit(loginxxx)", function (obj) { var user = obj.field; $.ajax({ type: 'Get', data: user, url: '/Student2/CheckLogin', success: function (result) { var serverData = result.split(':'); if (serverData[0] == "ok") { window.location.href = "/Student2/Index"; } else if (serverData[0] == "error") { layer.msg(serverData[1], { icon: 2 }); } else { layer.msg("操作失敗", { icon: 2 }); } } }) }) }) </script> </body> </html>
2. 導航界面
index.cshtml
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>layout 后台大布局 - Layui</title> <link href="~/Content/layui-v2.5.6/css/layui.css" rel="stylesheet" /> </head> <body class="layui-layout-body"> <div class="layui-layout layui-layout-admin"> <div class="layui-header"> <div class="layui-logo">layui 后台布局</div> <!-- 頭部區域(可配合layui已有的水平導航) --> <ul class="layui-nav layui-layout-left"> <li class="layui-nav-item"><a href="">控制台</a></li> <li class="layui-nav-item"><a href="">商品管理</a></li> <li class="layui-nav-item"><a href="">用戶</a></li> <li class="layui-nav-item"> <a href="javascript:;">其它系統</a> <dl class="layui-nav-child"> <dd><a href="">郵件管理</a></dd> <dd><a href="">消息管理</a></dd> <dd><a href="">授權管理</a></dd> </dl> </li> </ul> <ul class="layui-nav layui-layout-right"> <li class="layui-nav-item"> <a href="javascript:;"> <img src="http://t.cn/RCzsdCq" class="layui-nav-img"> @Model.Name </a> <dl class="layui-nav-child"> <dd><a href="">基本資料</a></dd> <dd><a href="">安全設置</a></dd> </dl> </li> <li class="layui-nav-item"><a href="~/Student2/LogOut">退了</a></li> </ul> </div> <div class="layui-side layui-bg-black"> <div class="layui-side-scroll"> <!-- 左側導航區域(可配合layui已有的垂直導航) --> <ul class="layui-nav layui-nav-tree" lay-filter="test"> <li class="layui-nav-item layui-nav-itemed"> <a class="" href="javascript:;">所有商品</a> <dl class="layui-nav-child"> <dd><a class="site-active" tab-name="學生列表A" tab-url="/Student2/Student2Tab" tab-layid="11">學生列表A</a></dd> <dd><a class="site-active" tab-name="學生列表B" tab-url="/Student2/Student2Tab" tab-layid="22">學生列表B</a></dd> <dd><a class="site-active" tab-name="學生列表C" tab-url="/Student2/Student2Tab" tab-layid="33">學生列表C</a></dd> <dd><a class="site-active" tab-name="學生列表D" tab-url="/Student2/Student2Tab" tab-layid="44">學生列表D</a></dd> <dd><a class="site-active" tab-name="學生列表E" tab-url="/Student2/Student2Tab" tab-layid="55">學生列表E</a></dd> </dl> </li> <li class="layui-nav-item"> <a href="javascript:;">解決方案</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">列表一</a></dd> <dd><a href="javascript:;">列表二</a></dd> <dd><a href="">超鏈接</a></dd> </dl> </li> <li class="layui-nav-item"><a href="">雲市場</a></li> <li class="layui-nav-item"><a href="">發布商品</a></li> </ul> </div> </div> <div class="layui-body"> <!-- 內容主體區域 --> <div layui-body style="padding: 15px;"> <div class="layui-tab" lay-allowClose="true" lay-filter="tabList"> <ul class="layui-tab-title"> </ul> <div class="layui-tab-content"> </div> </div> </div> </div> <div class="layui-footer"> <!-- 底部固定區域 --> © layui.com - 底部固定區域 </div> </div> <script src="~/Content/layui-v2.5.6/layui.js"></script> <script> //JavaScript代碼區域 layui.use(['element','jquery'], function () { var element = layui.element, $ = layui.jquery; //觸發事件 var active = { tabAdd:function (name,url,layid) { element.tabAdd('tabList', { title: name //'選項卡的標題' ,content: '<iframe id="iframeMain" style="width: 100%" ; height="100%" ; scrolling="no" frameborder="no" src="'+url+'"></iframe>'//'選項卡的內容' //支持傳入html ,id: layid//'選項卡標題的lay-id屬性值' }); }, tabChange:function (layid) { element.tabChange('tabList', layid); }, tabDelete:function (layid) { element.tabDelete('tabList', layid); } } //當點擊有siteactive屬性的標簽時,即左側菜單欄中內容 ,觸發點擊事件 $('.site-active').on("click", function () { var dataid = $(this); var name = dataid.attr("tab-name"); var url = dataid.attr("tab-url"); var tab_layid = dataid.attr("tab-layid"); //1、 判斷tab-layid=layid的tab頁是否打開 if ($(".layui-tab-title li[lay-id]").length <= 0) { //1.1 初始狀態:1個Tab頁也沒有打開 active.tabAdd(name, url, tab_layid); //打開tab頁 active.tabChange(tab_layid)//轉到該tab頁 } else { //1.2 判斷該Tab頁是否已打開 var isData = false; //初始化一個標志,為false說明未打開該tab項 為true則說明已有 $.each($(".layui-tab-title li[lay-id]"), function () { //如果點擊左側菜單欄所傳入的id 在右側tab項中的lay-id屬性可以找到,則說明該tab項已經打開 if ($(this).attr("lay-id") == tab_layid) { isData = true; } }) if (isData == false) { //標志為false 新增一個tab項 active.tabAdd(name, url, tab_layid); //1.2.1 該Tab頁未打開,則打開該tab頁 } active.tabChange(tab_layid)//1.2.2 轉到該tab頁 } FrameWH(); //計算ifram層的大小 }); function FrameWH() { //計算ifram層的大小 var h = $(window).height() - 41 - 10 - 60 - 10 - 44 - 10; $("iframe").css("height", h + "px"); } $(window).resize(function () { FrameWH(); }) }); </script> </body> </html>
3. 內容頁面
3.1 查詢
Student2Tab.cshtml
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link href="~/Content/layui-v2.5.6/css/layui.css" rel="stylesheet" /> <!-- 注意:如果你直接復制所有代碼到本地,上述css路徑需要改成你本地的 --> </head> <body> <div class="layui-btn-group"> @*<button type="button" class="layui-btn" id="addBtn">新增學生</button>*@ @*<button type="button" class="layui-btn">編輯</button> <button type="button" class="layui-btn">刪除</button>*@ </div> <div class="demoTable"> 搜索學號: <div class="layui-inline"> <input class="layui-input" name="id" id="id" lay-verify="number" autocomplete="off"> </div> <button class="layui-btn" data-type="reload" id="searchBtn">搜索</button> <button type="button" class="layui-btn" id="addBtn">新增學生</button> </div> <table class="layui-hide" id="test" lay-filter="testFilter"></table> @*工具欄模板: <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" lay-event="add">添加</button> <button class="layui-btn layui-btn-sm" lay-event="delete">刪除</button> <button class="layui-btn layui-btn-sm" lay-event="update">編輯</button> </div> </script>*@ 下述是 toolbar 對應的模板,它可以存放在頁面的任意位置 <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> <a class="layui-btn layui-btn-xs" lay-event="edit">編輯</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">刪除</a> </script> <script src="~/Content/layui-v2.5.6/layui.js"></script> <!-- 注意:如果你直接復制所有代碼到本地,上述js路徑需要改成你本地的 --> <script> function showTime(tempDate) { var date = tempDate.replace(/[^0-9]/ig, ""); var d = new Date(parseInt(date)); var year = d.getFullYear(); var month = d.getMonth(); month++; month = month < 10 ? "0" + month : month; var day = d.getDate(); day = day < 10 ? "0" + day : day; var time = year + "-" + month + "-" + day; return time; } layui.use('table', function () { var table = layui.table, $ = layui.$; var tableIns = table.render({ elem: '#test' , id: 'testReload' , toolbar: 'default' //開啟工具欄,此處顯示默認圖標,可以自定義模板,詳見文檔 , url: '/Student2/Student2List' , cellMinWidth: 80 //全局定義常規單元格的最小寬度,layui 2.2.1 新增 , even: true //開啟隔行背景 , cols: [[ { type: 'checkbox' } , { field: 'Id', width: 80, title: 'Id' } , { field: 'StuNo', width: 80, title: '學號' } , { field: 'Name', width: 80, title: '姓名' } , { field: 'Pwd', width: 80, title: '密碼', sort: true } , { field: 'Sex', title: '性別', width: 80 } //minWidth:局部定義當前單元格的最小寬度,layui 2.2.1 新增 , { field: 'BrithDate', title: '出生日期', templet: function (d) { return showTime(d.BrithDate) }, width: 180, sort: true } , { field: 'Address', width: 150, title: '家庭地址', sort: true } , { fixed: 'right', width: 200, align: 'center', toolbar: '#barDemo' } //這里的toolbar值是模板元素的選擇器 ]] ,where: { //設定異步數據接口的額外參數,任意設 id:$("#id").val() //… } , page: { curr: 1 //重新從第 1 頁開始 } }); //監聽頭工具欄事件 table.on('toolbar(testFilter)', function (obj) { var checkStatus = table.checkStatus(obj.config.id) , data = checkStatus.data; //獲取選中的數據 switch (obj.event) { case 'add': layer.msg('添加'); layer.open({ type: 2, title: "新增用戶", area: ["700px", "450px"], content: '/Student2/Add', end: function () { table.reload("testReload", {});; //刷新單表 } }); break; case 'update': if (data.length === 0) { layer.msg('請選擇一行'); } else if (data.length > 1) { layer.msg('只能同時編輯一個'); } else { layer.alert('編輯 [id]:' + checkStatus.data[0].id); } break; case 'delete': if (data.length === 0) { layer.msg('請選擇一行'); } else { layer.msg('刪除'); } break; }; }); //監聽行工具事件 table.on('tool(testFilter)', function (obj) { //注:tool 是工具條事件名,testFilter 是 table 原始容器的屬性 lay-filter="對應的值" var data = obj.data //獲得當前行數據 , layEvent = obj.event; //獲得 lay-event 對應的值 if (layEvent === 'detail') { layer.msg('查看操作'); } else if (layEvent === 'del') { layer.confirm('真的刪除行么', function (index) { obj.del(); //刪除對應行(tr)的DOM結構 layer.close(index); //向服務端發送刪除指令 obj.del(); //刪除對應行(tr)的DOM結構,並更新緩存 //刪除操作 $.ajax({ type: 'Post', data: {'id':obj.data.Id}, dataType:'json', url: '/Student2/DeleteStudent2', success: function (result) { var serverData = result.split(':'); if (serverData[0] == "ok") { layer.msg(serverData[1],{icon:1}) table.reload();; //刷新單表 } else { lay.msg("操作失敗", { icon: 1 }) } } }) }); } else if (layEvent === 'edit') { layer.msg('編輯操作'); var userId = obj.data.Id layer.open({ type: 2, title: "編輯用戶", area: ["700px", "450px"], content: '/Student2/Edit' + "?id=" + userId, end: function () { $("#searchBtn").click(); //加載層-默認風格 layer.load(); //此處演示關閉 setTimeout(function(){ layer.closeAll('loading'); }, 500); } }); } }); // 重新刷新當前列表 $("#searchBtn").on("click", function () { table.reload('testReload', { where: { //設定異步數據接口的額外參數,任意設 id:$("#id").val() //… , method: 'get' // ,contentType: "application/json;charset=utf-8" ,url: '/Student2/Student2List' } }); }) // 新增按鈕點擊事件 $("#addBtn").on("click", function () { layer.open({ type: 2, title: "新增用戶", area: ["700px", "450px"], content: '/Student2/Add', end: function () { $("#searchBtn").click(); } }); }) }); </script> </body> </html>
3.2 新增
Add.cshtml
@{ Layout = null; } <html> <head> <meta name="viewport" content="width=device-width" /> <link href="~/Content/layui-v2.5.6/css/layui.css" rel="stylesheet" /> <title>Add</title> </head> <body> <div class="layui-form layui-form-pane1" action="" lay-filter="first"> <div class="layui-form-item"> <label class="layui-form-label"></label> <div class="layui-input-inline"> <input type="hidden" name="Id"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">學號</label> <div class="layui-input-inline"> <input type="text" name="StuNo" lay-verify="required" placeholder="請輸入學號" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫學號</div> </div> <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input type="text" name="Name" lay-verify="required" placeholder="請輸入姓名" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫姓名</div> </div> <div class="layui-form-item"> <label class="layui-form-label">密碼</label> <div class="layui-input-inline"> <input type="text" name="Pwd" lay-verify="required" placeholder="請輸入密碼" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫密碼</div> </div> <div class="layui-form-item" pane> <label class="layui-form-label">性別</label> <div class="layui-input-block"> <input type="radio" name="Sex" value="男" title="男"> <input type="radio" name="Sex" value="女" title="女" checked> </div> </div> <div class="layui-form-item" id="BrithDateTool"> <label class="layui-form-label">出生日期</label> <div class="layui-input-inline"> <input type="text" name="BrithDate" id="BrithDate" lay-verify="required" placeholder="請輸入出生日期" autocomplete="off" class="layui-input"> <span id="temp"></span> </div> <div class="layui-form-mid layui-word-aux">請務必填寫出生日期</div> </div> <div class="layui-form-item"> <label class="layui-form-label">家庭地址</label> <div class="layui-input-inline"> <input type="text" name="Address" lay-verify="required" placeholder="請輸入家庭地址" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫家庭地址</div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="sub">立即提交</button> <button onclick="parent.layer.closeAll()" class="layui-btn layui-btn-primary">關閉</button> </div> </div> </div> <script src="~/Content/layui-v2.5.6/layui.js"></script> <script type="text/javascript"> var datetime; layui.use(['form', 'laydate', 'table'], function () { var form = layui.form, layer = layui.layer, $ = layui.$, laydate = layui.laydate; form.render(); laydate.render({ elem: '#BrithDate' , format: 'yyyy-MM-dd' , btns: ['confirm'] ,trigger:'click' }); form.on("submit(sub)", function (obj) { var user = obj.field; debugger; $.ajax({ type: "POST", data: user, url: "/Student2/AddStudent2", success: function (result) { var data = result.split(':'); if (data[0] == "ok") { layer.msg(data[1], { icon: 1 }); setTimeout(function () { parent.layer.closeAll(); }, 2000); } else if (data[0] == "error") { layer.msg(data[1], { icon: 1 }); } else { layer.msg("新增失敗", { icon: 1 }); } } }) }) }) </script> </body> </html>
3.3 修改
Edit.cshtml
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <link href="~/Content/layui-v2.5.6/css/layui.css" rel="stylesheet" /> <title>Edit</title> </head> <body> <div class="layui-form layui-form-pane1" action="" lay-filter="first"> <div class="layui-form-item"> <label class="layui-form-label"></label> <div class="layui-input-inline"> <input type="hidden" name="Id" Id="Id" value="@ViewBag.id"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">學號</label> <div class="layui-input-inline"> <input type="text" name="StuNo" lay-verify="required" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫學號</div> </div> <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input type="text" name="Name" lay-verify="required" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫姓名</div> </div> <div class="layui-form-item"> <label class="layui-form-label">密碼</label> <div class="layui-input-inline"> <input type="text" name="Pwd" lay-verify="required" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫密碼</div> </div> <div class="layui-form-item" pane> <label class="layui-form-label">性別</label> <div class="layui-input-block"> <input type="radio" name="Sex" value="男" title="男"> <input type="radio" name="Sex" value="女" title="女" > </div> </div> <div class="layui-form-item" id="BrithDateTool"> <label class="layui-form-label">出生日期</label> <div class="layui-input-inline"> <input type="text" name="BrithDate" id="BrithDate" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務必填寫出生日期</div> </div> <div class="layui-form-item"> <label class="layui-form-label">家庭地址</label> <div class="layui-input-inline"> <input type="tel" name="Address" lay-verify="required" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">請務填寫家庭地址</div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="sub" onclick="return false;">立即提交</button> <button onclick="parent.layer.closeAll()" class="layui-btn layui-btn-primary" onclick="return false;">關閉</button> </div> </div> </div> <script src="~/Content/layui-v2.5.6/layui.js"></script> <script type="text/javascript"> var stuDetail = { stuInit: function ($, laydate, util, form) { $.ajax({ type: "Get", data: { id: $("#Id").val() }, url: "/Student2/EditInitData", success: function (result) { form.val("first", result); var birthtime = result.BrithDate.replace(/[^0-9]/ig, ""); laydate.render({ elem: '#BrithDate', value: new Date(parseInt(birthtime)), btns: ['confirm'] }); } }); } } layui.use(['form', 'laydate', 'table', 'util'], function () { var form = layui.form, layer = layui.layer, table = layui.table, $ = layui.$, util = layui.util, laydate = layui.laydate; form.render(); stuDetail.stuInit($, laydate, util, form); laydate.render({ elem: '#BrithDate' , format: 'yyyy-MM-dd' , btns: ['confirm'] , trigger: 'click' }); form.on("submit(sub)", function (obj) { var user = obj.field; //parent.layer.load(5, { shade: [0.5, "#5588AA"] }); $.ajax({ type: "POST", data: user, url: "/Student2/UpdateStudent2", success: function (result) { var data = result.split(':'); if (data[0] == "ok") { layer.msg(data[1], { icon: 1 }); setTimeout(function () { parent.layer.closeAll(); parent.table.reload("testReload"); //刷新單表 }, 2000); } else if (data[0] == "error") { layer.alert(data[1], { icon: 1 }); } else { layer.msg("修改失敗", { icon: 1 }); } } }) }) }) </script> </body> </html>
3.4 刪除
此外 layui 自帶集成了一些功能
4. 后台代碼
Student2Constroller
using StudentMvc.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace StudentMvc.Controllers { public class Student2Controller : Controller { private void DataInit() { using (EFDbContext dbContext = new EFDbContext()) { for (int i = 1; i <= 30; i++) { Student Student2 = new Student(); Student2.Name = "張三" + i; Student2.Pwd = "123456"; Student2.Sex = "男"; Student2.StuNo = i; Student2.BrithDate = DateTime.Now; Student2.Address = "武漢江夏"; dbContext.Student.Add(Student2); } for (int i = 1; i <= 30; i++) { Student2 Student2 = new Student2(); Student2.Name = "張三" + i; Student2.Pwd = "123456"; Student2.Sex = "男"; Student2.StuNo = i; Student2.BrithDate = DateTime.Now; Student2.Address = "武漢江夏"; dbContext.Student2.Add(Student2); } dbContext.SaveChanges(); } } /// <summary> /// 學生列表數據 /// </summary> /// <param name="page"></param> /// <param name="limit"></param> /// <returns></returns> public ActionResult Student2List(int page, int limit,int? id) { //DataInit(); using (EFDbContext dbContext = new EFDbContext()) { List<Student2> Student2List= new List<Student2> (); if (id !=null) { Student2List= dbContext.Student2.Where(s=>s.Id==id).OrderBy(s => s.Id).Skip(limit * (page - 1)).Take(limit).ToList(); //總共多少數據 var allCount = Student2List.Count(); //把totle和rows:[{},{}]一起返回 //先建立一個匿名類 var dataJson = new { code = 0, msg = "", count = allCount, data = Student2List }; return Json(dataJson, JsonRequestBehavior.AllowGet); } else { Student2List = dbContext.Student2.OrderBy(s => s.Id).Skip(limit * (page - 1)).Take(limit).ToList(); //總共多少數據 var allCount = dbContext.Student2.Count(); //把totle和rows:[{},{}]一起返回 //先建立一個匿名類 var dataJson = new { code = 0, msg = "", count = allCount, data = Student2List }; return Json(dataJson, JsonRequestBehavior.AllowGet); } } } // GET: Student2 /// <summary> /// 導航頁面 /// </summary> /// <returns></returns> public ActionResult Index() { int userId; if (Session["userId"] == null || !int.TryParse(Session["userId"].ToString(), out userId)) { return Redirect("~/Student2/Login"); } EFDbContext dbContext = new EFDbContext(); var user = dbContext.Student2.Find(userId); return View(user); } /// <summary> /// 彈框編輯頁面 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Edit(int id) { EFDbContext dbContext = new EFDbContext(); Student2 stu = dbContext.Student2.Find(id); ViewBag.id = id; return View(); } /// <summary> /// 彈框新增頁面 /// </summary> /// <returns></returns> public ActionResult Add() { return View(); } /// <summary> /// 編輯頁面的初始數據 /// </summary> /// <param name="id"></param> /// <returns></returns> public JsonResult EditInitData(int id) { EFDbContext dbContext = new EFDbContext(); Student2 stu = dbContext.Student2.Find(id); return Json(stu, JsonRequestBehavior.AllowGet); } /// <summary> /// 提交編輯頁面的數據 /// </summary> /// <param name="stu"></param> /// <returns></returns> public ActionResult UpdateStudent2(Student2 stu) { EFDbContext dbContext = new EFDbContext(); var s = dbContext.Student2.Find(stu.Id); if (stu.StuNo != s.StuNo && dbContext.Student2.Where(m => m.StuNo == stu.StuNo).FirstOrDefault() != null) { return Content("error:學號已存在,請修改后再操作!"); } s.Name = stu.Name; s.Pwd = stu.Pwd; s.Sex = stu.Sex; s.StuNo = stu.StuNo; s.BrithDate = stu.BrithDate; dbContext.SaveChanges(); return Content("ok:修改成功"); } /// <summary> /// 提交新增頁面的數據 /// </summary> /// <param name="data"></param> /// <returns></returns> public ActionResult AddStudent2(Student2 data) { EFDbContext dbContext = new EFDbContext(); if (dbContext.Student2.Where(m => m.StuNo == data.StuNo).FirstOrDefault() != null) { return Content("error:學號已存在,請修改后再操作!"); } dbContext.Student2.Add(data); dbContext.SaveChanges(); return Content("ok:新增成功"); } /// <summary> /// 提交要刪除的數據 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult DeleteStudent2(int id) { EFDbContext dbContext = new EFDbContext(); var s = dbContext.Student2.Find(id); dbContext.Student2.Remove(s); dbContext.SaveChanges(); return Content("ok:刪除成功"); } /// <summary> /// 學生列表頁面 /// </summary> /// <returns></returns> public ActionResult Student2Tab() { return View(); } /// <summary> /// 登錄頁面 /// </summary> /// <returns></returns> public ActionResult Login() { return View(); } /// <summary> /// 導航頁登出 /// </summary> /// <returns></returns> public ActionResult LogOut() { Session["userId"] = null; return Redirect("~/Student2/Login"); } /// <summary> /// 登錄驗證 /// </summary> /// <param name="txtName"></param> /// <param name="txtPwd"></param> /// <returns></returns> public ActionResult CheckLogin(string txtName, string txtPwd) { string userName = txtName; string userPwd = txtPwd; EFDbContext dbContext = new EFDbContext(); var Student2 = dbContext.Student2.Where(s => s.Name == userName && s.Pwd == userPwd).FirstOrDefault(); if (Student2 != null) { Session["userId"] = Student2.Id; return Content("ok:登錄成功"); } else { return Content("no:用戶名或者密碼錯誤"); } } } }
以上有些沒貼到代碼的地方,請我的上一篇博文 MVC5+EasyUI+EF6增刪改查以及登錄登出的演示 里面找
經過幾天的折騰,終於將一個完整的demo弄出來了,這幾天走了一些彎路,
總結經驗教訓如下:
1. 最開始,還是老實地參考官網的示例,一個個去了解它各個模塊的使用,而不是去網上搬別人的源碼,然后在上面修改(我就是這樣 ,耗時耗力 ,大半地時間的耗在了前面。 結果~~~ )。
-
前端框架在不斷的升級,別人那時候用的版本和你現在用的版本不一致,有時候,別人解決bug的方法不一定適用於你,最好的辦法是 參考別人的思路,然后對着官網說明 ,自己手寫處理方法
有興趣研究的。可以進QQ群,在群在線文檔里面進行下載。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
鏈接:https://pan.baidu.com/s/1Y1ktqKMAl9T2SXwpVKGaHw
提取碼:76h3