BaseController(Dapper)


public class BaseController : Controller where T : class, new()
    {

        BaseDal baseDal = new BaseDal();


        #region 通用基础方法

        /// 
        /// 新增
        /// 
        /// 
        /// 
        public virtual ActionResult Insert(T t)
        {

            int res = baseDal.Insert(t);


            return Content(res.ToString());

        }


        /// 
        /// 批量新增
        /// 
        /// 
        /// 
        public virtual ActionResult InsertBatch(List list)
        {

            bool res = baseDal.InsertBatch(list);


            return Content(res.ToString());

        }


        /// 
        /// 修改
        /// 
        /// 
        /// 
        public virtual ActionResult Update(T t)
        {

            bool res = baseDal.Update(t);


            return Content(res.ToString());

        }


        /// 
        /// 更新非空字段\部分字段  默认第一个字段为更新主键
        /// 
        /// 
        /// 
        public virtual ActionResult UpdateNotNull(T t)
        {

            bool res = baseDal.UpdateNotNull(t);


            return Content(res.ToString());

        }

        /// 
        /// 删除
        /// 
        /// 
        /// 
        public virtual ActionResult Delete(T t)
        {

            bool res = baseDal.Delete(t);


            return Content(res.ToString());

        }

        /// 
        /// 批量删除
        /// 
        /// 
        /// 
        public virtual ActionResult DeleteBatch(List list)
        {

            bool res = baseDal.DeleteBatch(list);


            return Content(res.ToString());

        }


        /// 
        /// 查询一个实体
        /// 
        /// 
        /// 
        public virtual ActionResult Get(string id)
        {

            T res = baseDal.Get(id);

            return Json(res, JsonRequestBehavior.AllowGet);

        }

        /// 
        /// 查询全部
        /// 
        /// 
        public virtual ActionResult GetListAll()
        {

            List res = baseDal.GetListAll();

            return Json(res, JsonRequestBehavior.AllowGet);

        }

        #endregion


        #region 示例方法 需重写

        /// 
        /// 获取分页数据
        /// Dapper扩展分页
        /// 
        /// 
        /// 
        /// 
        /// 
        public virtual ActionResult GetPage(int page, int limit, string Id)
        {

            long allRowsCount = 0;

            List list = baseDal.GetPage(page, limit, out allRowsCount);

            LayUIDataResult layUIDataResult = new LayUIDataResult()
            {
                code = 0,
                count = allRowsCount,
                msg = "",
                data = list
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// 
        /// SQL分页示例
        /// 
        /// 
        /// 
        /// 
        /// 
        public virtual ActionResult GetPageListForSQL(int page, int limit, string Id)
        {

            JObject jObject = new JObject();


            PageDataView res = baseDal.GetPageListForSQL(jObject);

            LayUIDataResult layUIDataResult = new LayUIDataResult()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// 
        /// SQL分页示例  主要用于  MVC控制器 Layui
        /// 
        /// 
        /// 
        [HttpPost]
        public virtual ActionResult GetPageListForSQL(FormCollection collection)
        {

            T t = new T();

            TryUpdateModel(t, collection);
            int page = Convert.ToInt32(collection["page"]);
            int limit = Convert.ToInt32(collection["limit"]);


            PageDataView res = baseDal.GetPageListForSQL(page, limit, t);



            LayUIDataResult layUIDataResult = new LayUIDataResult()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }




        #endregion


    }