YbSoftwareFactory 代码生成插件【八】:基于JQuery EasyUI、Web Api的 ASP.NET MVC 代码生成插件

    剧中人物管理界面:

 主题特性:

附件1:点击下载Dynamic
Linq
的源代码

   层次数据字典的治本也使用通用API,你同样仅需定义所要管理的主代码即可:

    网格数据字典的管制接纳通用API,你仅需定义所要管理的主代码即可:

    如下是Web API发表的多寡:

    基本原理:

六、集成方便易用的数码字典功能

图片 1

    注:该 德姆o 应用程序的源码完全通过 YbSoftwareFactory
一键变动,在此基础上二回开发将大大节约开发周期。

三、通过 Dynamic Linq
实现数据库的模糊查询和分页,分明升高大数据量下的特性,本文最终将提供
Dynamic Linq 完结源码的下载地址。

图片 2

图片 3

2、集成Web API,可透过 Web API
对外宣布数据,提供GET\POST\PUT\DELETE多少个法子,可供
Web、WinForm、WPF、Silverlight 等具有品类的客户端调用和保管工作数据。

   
同时后台的各种实体必要贯彻如下的过滤表明式,以便辅助查询后的数据库分页,此处使用了Dynamic
Linq 技术,你可自定义符合小编必要的询问艺术:

图片 4i吗

public IEnumerable<HierarchyData> Get()
        {
            var items = new List<HierarchyData>();
            //此处添加需要的主代码
            items.Add(new HierarchyData() { HierarchyType = "行政区域" });
            items.Add(new HierarchyData() { HierarchyType = "部门" });

            return items;
        }

   
filter为增添的询问参数,用于模糊匹配,须求在前台的JS中在查询时动态设置其参数值:

function setQueryParams(value) {
    var queryParams = grid.datagrid('options').queryParams;
    queryParams.filter = value;
    grid.datagrid('options').queryParams = queryParams;
}

图片 5

图片 6

5、数据编辑界面,自动处理One-Many的涉嫌:

    “YbRapidSolution for MVC”是 YbSoftwareFactory
最新的代码生成插件,可壹键生成基于ASP.NET MVC的缓解方案源代码。其变化的
德姆o 项目地址:http://mvcdemo.yellbuy.com/。本文末尾还将提供3个Dynamic Linq 实现源码的下载地址,供感兴趣的心上人下载。

protected override string[] FilterArray
        {
            get
            {
                return new[] { "ProductName.Contains(@0)",
                    "QuantityPerUnit.Contains(@0)", 
                    "Categories.CategoryName.Contains(@0)", 
                    "Suppliers.CompanyName.Contains(@0)" };
            }
        }

肆、数据访问层使用 EntityFramework,使用Code
First,基于其提供的IQueryable接口完结查询和分页。

一、界面层使用ASP.NET MVC 4.0+JQuery EasyUI,基于Razor
语法,界面雅观,操作便利。

七、集成完善的权杖控制机能

    可排序的网格数据字典界面:

    登录用户管理界面:

    可排序的层次数据字典:

    须求在劳动器端达成的依照泛型的ApiController类中展露如下GET分页方法

//此处添加需要的主代码
        public IEnumerable<ConcreteData> Get()
        {
            var items = new List<ConcreteData>();

            items.Add(new ConcreteData() { ConcreteType = "类别"});
            items.Add(new ConcreteData() { ConcreteType = "颜色" });
            items.Add(new ConcreteData() { ConcreteType = "民族" });

            return items;
        }

    本方法后边的“rows”, “sort”, “order”三个参数为JQuery EasyUI
datagrid设置为劳动器端分页所需的默许参数,通过在前台页面中设置datagrid的“pagination:
true”后将会自动追加那个参数,因而该情势的参数顺序必须和datagrid的调用保持壹致。

public ResponseResult<M> Get(string filter, int page, int rows, string sort, string order)
        {

            var table = Table;
            if(!string.IsNullOrWhiteSpace(filter))
            {
                var str=GetFilterFormat();
                if(!string.IsNullOrWhiteSpace(str))
                    table = table.Where(str,filter);
            }
            var total = table.LongCount();
            table = table.OrderBy(string.Format("{0} {1}", sort, order)).Skip((page - 1)*rows).Take(rows);
            var items = table.ToList();
            var models = InjectFrom(items);
            return new ResponseResult<M>(total, models);
        }

图片 7

图片 8