【無私分享:從入門到精通ASP.NET MVC】從0開始,一塊兒搭框架、作項目(7.2) 模塊管理,模塊的添加、修改、刪除

索引html

【無私分享:從入門到精通ASP.NET MVC】從0開始,一塊兒搭框架、作項目 目錄索引

簡述json

今天咱們來作模塊管理的 添加、修改、刪除數組

項目準備框架

咱們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5工具

但願你們對ASP.NET MVC有一個初步的理解,理論性的東西咱們不作過多解釋,有些地方不理解也不要緊,會用就好了,用的多了,用的久了,天然就理解了。post

項目開始this

重要事情說3遍:從上一篇開始,用到的新技術很少,基本都是怎麼用前面講到的,基本不怎麼貼代碼,但願你們本身動手敲、必定要動手敲!動手敲!!動手敲!!!

先給你們貼一下效果(頁面排版稍微有點問題,還沒改,保存模塊以後 頁面應該自動刷新一下 js 控制也沒寫 你們主要看看功能 這些小的問題 本身修改一下就好了)

 

 

1、模塊詳情、添加/修改模塊

咱們添加一個Detail視圖 傳遞一個int? 類型的ID (若是有ID傳入 那就是展現模塊詳情和修改模塊,若是沒有ID傳入 那就是新建一個模塊了url

咱們是想這樣的,查看詳情 添加 修改,咱們都用這一個頁面,若是有ID傳入,那麼咱們就展現模塊信息(查看),而且填充內容到表單(修改),若是沒有ID傳入,那就實例化一個空的模型而且填充表單(添加)spa

 

 

先寫一個try{}catch(){}3d

 

 

咱們New 一個新的模塊實例 傳遞給視圖頁 並初始化一些參數

 

 

由於,由於,由於,咱們在Index視圖中 有個 操做 添加子模塊(7.1講了 由於沒有添加權限 因此[添加子模塊] 被 Remove掉了),由於是無限級分級的,因此點擊添加子模塊 能夠方便用戶在當前模塊下新建子模塊,就不用每次都要選擇上級模塊和系統了

 

 

2、Detail 模塊詳情視圖頁

OK,咱們轉到Detail的視圖頁(你們不要糾結個人頁面樣式~~~)

 

一、首先,咱們接收 傳遞的 實體模型

 

二、咱們展現模塊信息,而且建立保存表單

 

 

3、保存模塊

權限的操做類型咱們設爲 添加和修改

 

咱們接收傳遞過來的 實體模型 entity

一、定義變量 isEdit 實例化JsonHelper類

1  bool isEdit = false;
2  var json = new JsonHelper() { Msg = "保存成功", Status = "n" };

二、try catch ..

1             try
2             {
3              
4             }
5             catch (Exception e)
6             {
7                 json.Msg = "保存模塊發生內部錯誤!";
8                 WriteLog(Common.Enums.enumOperator.None, "保存模塊:", e);
9             }

 三、判斷接收的實體模型是否爲Null

1                 if (entity != null)
2                 {
3                     
4                 }
5                 else
6                 {
7                     json.Msg = "未找到須要保存的模塊";
8                 }

四、若是 實體模型不爲NULL 咱們用正則驗證模塊別名是否符合規範

1                     //驗證
2                     if (!Regex.IsMatch(entity.ALIAS, @"^[A-Za-z0-9]{1,20}$"))
3                     {
4                         json.Msg = "模塊別名只能以字母數字組成,長度不能超過20個字符";
5                         return Json(json);
6                     }

五、根據模塊的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                     }

六、若是是添加模塊 則 初始化模塊的建立信息和更新信息,不然 更新模塊的更新信息

 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                     }

七、判斷模塊別名同系統下是否重名、同父模塊下模塊名稱是否重名

 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                     }

八、執行添加或修改模塊

1                        if (this.ModuleManage.SaveOrUpdate(entity, isEdit))
2                         {
3                             
4                             json.Status = "y";
5                         }
6                         else
7                         {
8                             json.Msg = "保存失敗";
9                         }

九、若是模塊修改爲功,咱們變動下級模塊的級別

1                            //變動下級模塊的級別
2                             if (isEdit)
3                             {
4                                 this.ModuleManage.MoreModifyModule(entity.ID, Convert.ToInt32(entity.LEVELS));
5                             }

 

這樣,添加和修改功能就完成了。

 

4、刪除模塊

首先,咱們判斷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";

 

 

原創文章 轉載請尊重勞動成果 http://yuangang.cnblogs.com

相關文章
相關標籤/搜索