先看图,下边这个简单的增、删、改、查,如果自己写代码实现,这两个页需要多少行代码?

如果再有类似的增、删、改、查,又需要多少行代码?

我最近搞的这个快速开发框架中,代码行数不超过100。

两页的代码如下:

1,列表页:

@{
ViewBag.Title = "**** - 部门管理";
ViewBag.MenuType = "Manage";
ViewBag.MenuName = "部门管理";
}
@section HeadContent{
}
<div class="tit">
<span style="float: left;"><a href="@Url.Content("~/")" target="_self">首页</a>部门管理</span>
<span style="float: right; padding-right: 10px;"></span>
</div>
<div class="main">
<div class="main_con">
<table id="tbDataList" class="easyui-datagrid">
</table>
</div>
</div>
<div class="clear">
</div>
@section FootContent{
<script type="text/javascript">
$(function () {
var columnsSetting = [
{ field: 'Name', title: '部门名称', width: 100, sortable: true},
{ field: 'SortNum', title: '排序号', width: 80 },
{ field: 'Remark', title: '备注', width: 80 },
{ field: 'NoticeEmails', title: '邮件通知列表', width: 200 },
{ field: 'CreateManEnName', title: '添加人', width: 120 },
{ field: 'CreateTime', title: '添加时间', width: 80, formatter: function (value) {
if (value != null) {
return value.CDate();
}
}
}
]; initParam.url = '/DeptManage/GetDeptList';
initParam.queryParams = {};
initParam.width = 1077;
//initParam.height= 600;
initParam.columns = columnsSetting;
initParam.toolbar = builderAddEditDelToolbar('部门管理', "/DeptManage", 500, 500);
builderDatagrid(initParam);
});
</script>
}

2,新增/编辑页代码如下:

@model Cigna.ForbiddenLeads.Model.RoleModel
@{
ViewBag.Title = "**** - 角色管理";
Layout = "~/Views/Shared/_EmptyLayout.cshtml";
}
@section HeadContent{
}
@using (Html.BeginForm("EditForm", "RoleManage", FormMethod.Post, new { id = "EditForm", name = "EditForm", onsubmit = "return Check()" }))
{
<div class="ab" style="margin-top: 20px;">
<span class="abname"><span class="red">*</span>角色名称:</span><span class="abinput">
@Html.TextBoxFor(model => model.Name, new { title = "角色名称", @class = "easyui-validatebox", required = "true" })
</span>
</div>
<div class="ab">
<span class="abname"><span class="red">*</span>权限:</span> <span class="abinput">
@Html.CheckBox("AllowUpload", @Model.AllowUpload == "Y" ? true : false)上传
@Html.CheckBox("AllowDown", @Model.AllowDown == "Y" ? true : false)下载
@Html.CheckBox("AllowManage", @Model.AllowManage == "Y" ? true : false)管理 </span>
</div>
<div class="ab">
<span class="abname">备注:</span><span class="abinput">
@Html.TextAreaFor(model => model.Remark, new { title = "备注",@rows = "6", @cols = "80", @style = "width: 250px;" })
</span>
</div>
<br />
@Html.Partial("Button")
@Html.HiddenFor(model => model.ID)
}

为什么,实现这么多的功能,只需要这稀稀拉拉不到100行的前台代码?

那是因为,大量的代码都重用,都写在其他类库。

比如说,列表页中画Datagrid,比如说增、删、改按钮的事件,这些都共用,写在Common.js中,通过传参数就可以实现对应的功能。

比如说,新增/修改页中的提交和返回按钮的触发事件,是写在一个分部视图里的,页面中只需一行代码调用就可以了。

这样所有的新增/修改页,都调用这一个分部视图。

比如说,往后台传页面参数,普通的作法时,对页面上的控件,一个一个的获取其值,然后传到后台,这里的作法是,获取页面所有的控制值,组装成Json,传入后台,后台再转移为对应实体,是不是很帅,很方便呢?

关键代码如下:

往后台传参。

     <script type="text/javascript">
$(function () {
$("#btnSubmit").bind("click", function () {
var lastForm = $($("form").last());
if (!lastForm.form('validate')) return;
var formJSON = { dataJson: JSON2.stringify(lastForm.formtojson()) }; $.ajax({
url: lastForm.attr("action"),
type: 'post',
data: formJSON,
success: function (data) {
ajaxSuccessFun(data);
},
error: function (date, ddd) { }
})
})
});
</script>

后台接收参数:

            string json = RequestExtension.GetFormData();
if (string.IsNullOrEmpty(json))
return Json(new ResultMsg(500, "没有获取到参数"), JsonRequestBehavior.AllowGet); json = HttpUtility.UrlDecode(json);
RoleModel viewModel = JsonExtension.JsDeserialize<RoleModel>(json);

至此,功能基本实现,刚好要下班了,有兴趣的请留言,我接着把,谢谢。

基于EasyUi的快速开发框架的更多相关文章

  1. EasyUi的快速开发框架

    基于EasyUi的快速开发框架   先看图,下边这个简单的增.删.改.查,如果自己写代码实现,这两个页需要多少行代码? 如果再有类似的增.删.改.查,又需要多少行代码? 我最近搞的这个快速开发框架中, ...

  2. 基于vue-cli的快速开发框架

    基于vue-cli的快速规范开发框架,已封装常用组件,可直接进行基本项目开发 1,遵循eslint规则,提升代码质量 2,集成mock模拟服务端数据,提升开发效率 3,集成vuex,可直接使用开发 4 ...

  3. ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统

    1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件 ...

  4. c# 基于WebApi的快速开发框架FastFramework

    一.框架简介 此框架是针对于webapi进行开发,项目分层是基于ABP框架的分层,更好的抽离业务逻辑关系,ABP是基于EF做数据访问层,本人个人比较喜欢Dapper,就把数据访问层封装成了Dapper ...

  5. dotnet-千星项目OpenAuthNet基于NetCore21的快速开发框架

    下载

  6. 免费、开源的基于tp5的快速开发框架

    HisiPHP 系统官网:https://www.hisiphp.com/ 后台体验:http://v2.demo.hisiphp.com/admin.php/system/publics/index ...

  7. .NET开源快速开发框架Colder发布 (NET452+AdminLTE版)

    .NET开源快速开发框架Colder(NET452+AdminLTE版) 引言 半年前将基于Easyui的快速开发框架开源,三个版本(NET4.52,NETCore和NET4.0)总共荣获200+星, ...

  8. 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。

    快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...

  9. 基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理

    在很多Web界面中,我们都可以看到很多下拉列表的元素,有些是固定的,有些是动态的:有些是字典内容,有些是其他表里面的名称字段:有时候引用的是外键ID,有时候引用的是名称文本内容:正确快速使用下拉列表的 ...

随机推荐

  1. Rust: lifetime

    Rust的lifetime算是它最重要的特性之一,也不大好理解,特别是官方文档的介绍有些太过简略,容易让人误解. 这篇文章: Rust Lifetimes 应该可以解答很多人疑惑,特别是有关lifet ...

  2. HDOJ 1428 漫步校园

    漫步校园 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. Unity3D研究院之静态自动检查代码缺陷与隐患

    原地址:原地址:http://www.xuanyusong.com/archives/2828 代码缺陷和代码错误的最大区别是,代码缺陷不影响游戏编译,而代码错误编译都不通过.但是代码缺陷会影响游戏发 ...

  4. iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行

    可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加 ...

  5. ***mysql索引总结----mysql索引类型以及创建

    文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...

  6. Win 7英文系统显示中文乱码的解决(转)

    Win 7英文系统显示中文乱码的解决http://www.enet.com.cn/article/2011/0811/A20110811896633.shtml 请点击Startmenu并点击Cont ...

  7. selenium测试框架篇

    做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是 ...

  8. 8天学通MongoDB——第二天 细说增删查改

    原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html 看过上一篇,相信大家都会知道如何开启mongodb了 ...

  9. lintcode: 左填充

    题目 实现一个leftpad库,如果不知道什么是leftpad可以看样例 样例 leftpad("foo", 5) >> " foo" leftpa ...

  10. lintcode:买卖股票的最佳时机 I

    买卖股票的最佳时机 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格.如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润. 样例 给出一个数组样例 [3,2,3 ...