【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(7.2) 模組管理,模組的新增、修改、刪除
索引
簡述
今天我們來做模組管理的 新增、修改、刪除
專案準備
我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5
希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。
專案開始
重要事情說3遍:從上一篇開始,用到的新技術不多,基本都是怎麼用前面講到的,基本不怎麼貼程式碼,希望大家自己動手敲、一定要動手敲!動手敲!!動手敲!!!
先給大家貼一下效果(頁面排版稍微有點問題,還沒改,儲存模組之後 頁面應該自動重新整理一下 js 控制也沒寫 大家主要看看功能 這些小的問題 自己修改一下就行了)
一、模組詳情、新增/修改模組
我們新增一個Detail檢視 傳遞一個int? 型別的ID (如果有ID傳入 那就是展示模組詳情和修改模組,如果沒有ID傳入 那就是新建一個模組了
我們是想這樣的,檢視詳情 新增 修改,我們都用這一個頁面,如果有ID傳入,那麼我們就展示模組資訊(檢視),並且填充內容到表單(修改),如果沒有ID傳入,那就例項化一個空的模型並且填充表單(新增)
先寫一個try{}catch(){}
我們New 一個新的模組例項 傳遞給檢視頁 並初始化一些引數
因為,因為,因為,我們在Index檢視中 有個 操作 新增子模組(7.1講了 因為沒有新增許可權 所以[新增子模組] 被 Remove掉了),因為是無限級分級的,所以點選新增子模組 可以方便使用者在當前模組下新建子模組,就不用每次都要選擇上級模組和系統了
二、Detail 模組詳情檢視頁
OK,我們轉到Detail的檢視頁(大家不要糾結我的頁面樣式~~~)
1、首先,我們接收 傳遞的 實體模型
2、我們展示模組資訊,並且建立儲存表單
三、儲存模組
許可權的操作型別我們設為 新增和修改
我們接收傳遞過來的 實體模型 entity
1、定義變數 isEdit 例項化JsonHelper類
1 bool isEdit = false; 2 var json = new JsonHelper() { Msg = "儲存成功", Status = "n" };
2、try catch ..
1 try 2 { 3 4 } 5 catch (Exception e) 6 { 7 json.Msg = "儲存模組發生內部錯誤!"; 8 WriteLog(Common.Enums.enumOperator.None, "儲存模組:", e); 9 }
3、判斷接收的實體模型是否為Null
1 if (entity != null) 2 { 3 4 } 5 else 6 { 7 json.Msg = "未找到需要儲存的模組"; 8 }
4、如果 實體模型不為NULL 我們用正則驗證模組別名是否符合規範
1 //驗證 2 if (!Regex.IsMatch(entity.ALIAS, @"^[A-Za-z0-9]{1,20}$")) 3 { 4 json.Msg = "模組別名只能以字母數字組成,長度不能超過20個字元"; 5 return Json(json); 6 }
5、根據模組的ParentId設定模組級別
1 //級別加1,一級模組預設0 2 if (entity.PARENTID <= 0) 3 { 4 entity.LEVELS = 0; 5 } 6 else 7 { 8 entity.LEVELS = this.ModuleManage.Get(p => p.ID == entity.PARENTID).LEVELS + 1; 9 }
6、如果是新增模組 則 初始化模組的建立資訊和更新資訊,否則 更新模組的更新資訊
1 //新增 2 if (entity.ID <= 0) 3 { 4 entity.CREATEDATE = DateTime.Now; 5 entity.CREATEUSER = this.CurrentUser.Name; 6 entity.UPDATEDATE = DateTime.Now; 7 entity.UPDATEUSER = this.CurrentUser.Name; 8 } 9 else //修改 10 { 11 entity.UPDATEDATE = DateTime.Now; 12 entity.UPDATEUSER = this.CurrentUser.Name; 13 isEdit = true; 14 }
7、判斷模組別名同系統下是否重名、同父模組下模組名稱是否重名
1 //模組別名同系統下不能重複 2 if (this.ModuleManage.IsExist(p => p.FK_BELONGSYSTEM == entity.FK_BELONGSYSTEM && p.ALIAS == entity.ALIAS && p.ID != entity.ID)) 3 { 4 json.Msg = "同系統下模組別名不能重複"; 5 return Json(json); 6 } 7 //判斷同一個父模組下,是否重名 8 if (!this.ModuleManage.IsExist(p => p.PARENTID == entity.PARENTID && p.FK_BELONGSYSTEM == entity.FK_BELONGSYSTEM && p.NAME == entity.NAME && p.ID != entity.ID)) 9 { 10 11 } 12 else 13 { 14 json.Msg = "模組" + entity.NAME + "已存在,不能重複新增"; 15 }
8、執行新增或修改模組
1 if (this.ModuleManage.SaveOrUpdate(entity, isEdit)) 2 { 3 4 json.Status = "y"; 5 } 6 else 7 { 8 json.Msg = "儲存失敗"; 9 }
9、如果模組修改成功,我們變更下級模組的級別
1 //變更下級模組的級別 2 if (isEdit) 3 { 4 this.ModuleManage.MoreModifyModule(entity.ID, Convert.ToInt32(entity.LEVELS)); 5 }
這樣,新增和修改功能就完成了。
四、刪除模組
首先,我們判斷idList是否為空
1 JsonHelper json = new JsonHelper() { Msg = "刪除模組成功", ReUrl = "", Status = "n" }; 2 try 3 { 4 if (!string.IsNullOrEmpty(idList)) 5 { 6 7 } 8 else 9 { 10 json.Msg = "未找到要刪除的模組"; 11 } 12 WriteLog(Common.Enums.enumOperator.Remove, "刪除模組,結果:" + json.Msg, Common.Enums.enumLog4net.WARN); 13 } 14 catch (Exception e) 15 { 16 json.Msg = "刪除模組發生內部錯誤!"; 17 WriteLog(Common.Enums.enumOperator.Remove, "刪除模組:", e); 18 } 19 return Json(json);
如果不為空,我們把idList轉為int 陣列 idlist1
1 var idlist1 = idList.Trim(',').Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(p => int.Parse(p)).ToList();
在執行刪除之前,我們要進行兩步判斷,首先判斷模組是否存在許可權
1 //判斷許可權裡面有沒有 2 if (!this.PermissionManage.IsExist(p => idlist1.Any(e => e == p.MODULEID))) 3 { 4 5 } 6 else 7 { 8 json.Msg = "該模組下有許可權節點,不能刪除"; 9 }
然後判斷,模組下是否有子模組
1 //存在子模組與否 2 if (!this.ModuleManage.IsExist(p => idlist1.Any(e => e == p.PARENTID))) 3 { 4 5 } 6 else 7 { 8 json.Msg = "該模組下有子模組,不能刪除"; 9 }
執行刪除
1 this.ModuleManage.Delete(p => idlist1.Any(e => e == p.ID)); 2 json.Status = "y";
相關推薦
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(7.2) 模組管理,模組的新增、修改、刪除
索引 簡述 今天我們來做模組管理的 新增、修改、刪除 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.3) 登入功能的實現,豐富資料表、建立關聯
1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_CODE] Script Date: 2016/5/17 9:30:01 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (10)部門管理、崗位管理和員工管理
1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_POST_USER] Script Date: 2016/6/20 16:28:44 ******/ 4 SET ANSI_NULLS ON 5 GO
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (12)程式與資料備份
索引 簡述 程式檔案備份與資料備份 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.4) 登入功能的實現,建立與登入使用者相關的介面和實現類
索引 簡述 今天我們建立幾個與登入使用者相關的資料表的介面和實現類 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (14)附資料庫、釋出專案
索引 簡述 總結一 整個系列其實還包括專案管理、考勤簽到、郵件、內部聊天等等,這個東西是做不完的,如果繼續還有新聞系統、靜態生成等等等等.... 其中,靜態頁生成在我的部落格中可以找到,三種方式: 第一種 就是類似網上的很多CMS一樣 採用標籤替換,但這種方式是不推薦的,特別是在我們.Net中,
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (16)原始碼分享二:登入功能以及UI、資料庫、倉儲原始碼分享
1 using Common; 2 using Service.IService; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web;
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.5) 登入功能的實現,完善登入功能
索引 簡述 今天我們來完善我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 登入介面前端樣式和特效
很多朋友要UI,我也說過,後臺的UI就是BootStrap,網上很多的。也有朋友喜歡LZ的登入,LZ的登入介面也是網上找的,然後稍微做了下修改。 不過既然大家喜歡,那麼LZ就分享給大家。 1、登入頁面效果 2、登入頁面程式碼 1 @{ 2 Layout = null; 3
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.2) 登入功能的實現,介面注入、log4net的使用
索引 簡述 前兩天事情比較多,耽誤更新了,希望大家多多包涵,今天我們繼續做我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.1) 登入功能的實現,開始接觸Spring IOC、DI
索引 簡述 今天我們做登入,今天的東西比較多,用到了Spring的IOC和DI、介面的使用、驗證等,希望大家多多討論 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (15)原始碼分享一:修改倉儲IRepository、RepositoryBase
1 #region 獲取多條資料操作 2 3 /// <summary> 4 /// 返回IQueryable集合,延時載入資料 5 /// </summary> 6 /// &l
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(7.1) 模組管理,驗證許可權,展示模組列表
索引 簡述 今天我們來做模組管理的 展示 模組列表 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(9) 角色管理,分配許可權
索引 簡述 今天我們來做角色的管理 和 角色許可權分配 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(1)搭建MVC環境 註冊區域
索引 簡述 從今天開始,我們從0開始搭建一個框架,並且完成一個任務管理系統的專案。這並不是什麼大專案,只是對於不熟悉MVC以及不熟悉面向介面開發和依賴注入的朋友們有所啟發,因為是從0開始,所以有些地方比較囉嗦,希望大家理解! 希望新手朋友們拋棄“拿來主義”,動手跟著一步一步的做,當做完這個框架和專案
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(6) 控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作
索引 簡述 今天我們來寫一個控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(8) 許可權管理,自定義許可權,擴充套件許可權
索引 簡述 今天我們來做許可權的管理,這篇比較多 希望新手朋友慢慢消化 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (13)客戶管理
索引 簡述 簡單的客戶管理 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始 一、資料
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(3)公共基礎資料操作類 RepositoryBase
索引 簡述 今天我們寫一個基礎資料的操作類,如果裡面有大家不理解的地方,可採取兩種方式,第一:提出來,第二:會用就行。這個類呢我一般不去修改它,因為基礎操作類,大家也可以直接拷貝到自己的專案中。 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (11)檔案管理
索引 簡述 檔案管理,這個比較雞肋 但是有些方法 大家可以參考下 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,