前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-页面模块。页面模块涉及到的数据表为页面表。
1.1页面域
为了更规范和方便后期系统的二次开发和维护,对应特定的业务模块采用Area(域)的方式开发,页面模块的开发域如下图所示:
由于在Areas下还建立了一个新的目录SystemManage,故需要改变原来的路由。页面模块的路由文件名称为pageManageAreaRegistration。改变路由代码的文件名称为如下:
using System.Web.Mvc;
namespace CodeForMvcTest.Areas.PageManage
{
public class PageManageAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "SystemManage/PageManage";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"SystemManage_PageManage_default",
"SystemManage/PageManage/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}
1.2Model
页面模块的Model可参看第三章项目架构的系统共有类,对应model为Page.cs。文件路径为Areas/SystemManage/Models。
1.3视图
页面模块的视图包含在页面域中,文件路径为Areas/SystemManage/OperatorManage/Views/PageManage,视图名称为PageMange.cshtml。视图的完整代码如下:
1 @{ 2 ViewBag.Title = "页面管理"; 3 Layout = "~/Views/Shared/_BaseLayout.cshtml"; 4 } 5 6 7 8 <div class="easyui-layout" data-options="fit:true"> 9 10 <div data-options="region:'north',split:true" style="height: 50px;"> 11 <form id="searchForm" method="POST" action="@Url.Action("PageManage", "PageManage")"> 12 <!--属性组筛选栏--> 13 <table style="margin-left: 5px; margin-top: 5px;"> 14 <tr> 15 <td><span>栏目:</span></td> 16 <td> 17 <select class="easyui-combotree" name="categoryId" id="categoryId" style="width: 180px;" 18 data-options="url:'/SystemManage/PageManage/PageManage/InitCatalog'"> 19 </select> 20 </td> 21 <td><span style="margin-left: 10px;">状态:</span></td> 22 <td> 23 <select class="easyui-combobox" name="isAvailable" id="isAvailable" style="width: 150px;" 24 data-options="editable:false"> 25 <option value="-1">全部</option> 26 <option value="1">启用</option> 27 <option value="0">不启用</option> 28 </select> 29 </td> 30 <td><span style="margin-left: 10px;">页面名称:</span></td> 31 <td> 32 <input class="easyui-validatebox" id="pageName" name="pageName" /> 33 </td> 34 <td> 35 <input type="submit" value="查找" id="btn_submit" style="margin-left: 10px; margin-right: 10px;" /> 36 </td> 37 </tr> 38 </table> 39 </form> 40 </div> 41 42 <div data-options="region:'center',split:true" style="padding-bottom: 10px;" id="centerDiv"> 43 <table id="dataGrid"> 44 <thead> 45 <tr> 46 <th data-options="field:'CategoryName',align:'left'">所属栏目</th> 47 <th data-options="field:'PageIndex',align:'left'">页面ID</th> 48 <th data-options="field:'PageName',align:'left'">页面名称</th> 49 <th data-options="field:'PageUrl',align:'left'">页面访问地址</th> 50 <th data-options="field:'Title',align:'left'">报表标题</th> 51 <th data-options="field:'Subtitle',align:'left'">副标题</th> 52 <th data-options="field:'ShowNum',align:'left'">排序值</th> 53 <th data-options="field:'IsAvailable',align:'center',formatter:statusformater">状态</th> 54 <th data-options="field:'Operate',align:'center',formatter:operateFormater">操作</th> 55 </tr> 56 </thead> 57 <tbody> 58 </tbody> 59 </table> 60 <br /> 61 </div> 62 63 </div> 64 65 <!--属性组工具栏--> 66 <div id="page_tb" style="height: auto"> 67 <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="openAddWindow();">添加页面</a> 68 </div> 69 70 71 <!--页面信息编辑窗体--> 72 <div id="pageEditWin" title="修改页面信息" style="width: 450px; height: 460px; padding: 20px; text-align: center;"> 73 <form id="pageEditForm" method="POST" action="@Url.Action("UpdatePage", "PageManage")"> 74 <table style="margin: auto;"> 75 <tr> 76 <td style="text-align: right;"><span>栏目:</span></td> 77 <td> 78 <select class="easyui-combotree" name="CategoryId" id="e_categoryId" style="width: 200px;" 79 data-options="url:'/SystemManage/PageManage/PageManage/InitCatalogWithoutRoot'"> 80 </select> 81 </td> 82 </tr> 83 <tr style="height: 30px;"> 84 <td style="text-align: right;"><span>名称:</span></td> 85 <td> 86 <input class="easyui-validatebox" id="e_pageName" name="PageName" style="width: 200px;" /> 87 </td> 88 </tr> 89 <tr style="height: 30px;"> 90 <td style="text-align: right;"><span>访问路径:</span></td> 91 <td> 92 <input class="easyui-validatebox" id="e_pageUrl" name="PageUrl" style="width: 200px;" /> 93 </td> 94 </tr> 95 <tr style="height: 30px;"> 96 <td style="text-align: right;"><span>标题:</span></td> 97 <td> 98 <input class="easyui-validatebox" id="e_title" name="Title" style="width: 200px;" /> 99 </td> 100 </tr> 101 <tr style="height: 30px;"> 102 <td style="text-align: right;"><span>副标题:</span></td> 103 <td> 104 <input class="easyui-validatebox" id="e_subtitle" name="Subtitle" style="width: 200px;" /> 105 </td> 106 </tr> 107 <tr style="height: 30px;"> 108 <td style="text-align: right;"><span>显示顺序:</span></td> 109 <td> 110 <input class="easyui-numberbox" id="e_showNum" name="ShowNum" style="width: 205px;" /> 111 </td> 112 </tr> 113 <tr style="height: 40px;"> 114 <td style="text-align: right;"><span>状态:</span></td> 115 <td> 116 <select class="easyui-combobox" name="IsAvailable" id="e_isAvailable" style="width: 205px;" 117 data-options="editable:false,required:true"> 118 <option value="0">不可用</option> 119 <option value="1">可用</option> 120 </select> 121 </td> 122 </tr> 123 <tr style="height: 50px;"> 124 <td colspan="2" style="text-align: right;"> 125 <input type="hidden" id="e_pageIndex" name="PageIndex" /> 126 <input type="reset" style="display: none;" /> 127 <input type="submit" value="提交" id="btn_editsubmit" style="margin-left: 10px; margin-right: 10px;" /> 128 <input type="button" value="取消" id="btn_editCancel" onclick="javascript: return $('#pageEditWin').window('close');" 129 style="margin-left: 10px; margin-right: 10px;" /> 130 </td> 131 </tr> 132 </table> 133 </form> 134 </div> 135 136 137 138 139 140 @section scripts 141 { 142 <script type="text/javascript" src="/Areas/SystemManage/SystemJS/pageManage.js"></script> 143 }