C# MVC绑定 List<DapperRow>到bootstrap-table列表
1.Dapper返回List<dynamic>对象
/// <summary>
/// 获取候选人推荐的分页数据
/// </summary>
/// <param name="page"></param>
/// <param name="pageSize"></param>
/// <param name="candidateName"></param>
/// <param name="allRowsCount"></param>
/// <returns></returns>
public List<dynamic> GetCandidateRecommendPage(int page, int pageSize, string candidateName, out long allRowsCount)
{
var sql = @"SELECT c.Name,c.birthday,c.CVId FROM dbo.Candidate c ";
var allRowsCountSql = @"SELECT COUNT(0) FROM dbo.Candidate"; var ret = base.DBSession.Connection.GetPage<dynamic>(page, pageSize, out allRowsCount, sql, null, allRowsCountSql).ToList();
return ret;
}
2.Controller层使用Newtonsoft.Json序列化
public JsonResult GetRecommends(int page, int pageSize, string candidatename)
{
var allRowsCount = 0L; var list = RpoJobRepository.NewInstance.GetCandidateRecommendPage(page, pageSize, candidatename, out allRowsCount); return base.NewtonsoftJson(new { total = allRowsCount, rows = list }, JsonRequestBehavior.AllowGet);
}
protected JsonResult NewtonsoftJson(object data, JsonRequestBehavior behavior)
{
return new NewtonsoftJsonResult
{
Data = data,
JsonRequestBehavior = behavior,
};
}
/// <summary>
/// Newtonsoft序列化方式
/// </summary>
public class NewtonsoftJsonResult : JsonResult
{
/// <summary>
/// 重写执行视图
/// </summary>
/// <param name="context">上下文</param>
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
} HttpResponseBase response = context.HttpContext.Response; if (string.IsNullOrEmpty(this.ContentType))
{
response.ContentType = this.ContentType;
}
else
{
response.ContentType = "application/json";
} if (this.ContentEncoding != null)
{
response.ContentEncoding = this.ContentEncoding;
} if (this.Data != null)
{
var jsonString = JsonConvert.SerializeObject(this.Data);
response.Write(jsonString);
}
}
3.View层像绑定对象列表一样绑定
columns: [{
checkbox: true
},
{
field: 'Name',
title: '姓名',
formatter: this.nameFormatter
}]
这里的field和第一步里查询的列名一致。
总结
1.dapper的 base.DBSession.Connection.GetPage<dynamic>方法返回的是DapperRow列表,DapperRow 继承 Dictionary<string, object>
2.controller返回对象时做json序列化,如果使用JavaScriptSerializer,结果是字典的JSON格式,如:
"total":143694,"rows":[[{"Key":"Name","Value":"赵保龙"},{"Key":"birthday","Value":"\/Date(107712000000)\/"},
使用Newtonsoft.Json.JsonConvert 序列化是对象格式,如:
{"total":143694,"rows":[{"Name":"璧典繚榫�","birthday":"1973-06-01T00:00:00","CVId":"JR027902222R90250000000"},{"Name":"閮厛鐢�","birthday":"1981-11-01T00:00:00","CVId":null},
3.使用动态类型不必再去定义ViewModel类了,节省很多时间。
4.还有一种方式是使用DataTable也可以达到相同目的,没做尝试。
C# MVC绑定 List<DapperRow>到bootstrap-table列表的更多相关文章
- bootstrap table 列表增加输入框并保存输入的值不清除
需求: 在bootstrap table上增加输入框,需要选择的时候把输入的值保存到 row 里面,传递给其他模块使用. 实现: columns: [{ ...., { field: 'myField ...
- 在ASP.NET MVC中使用 Bootstrap table插件
Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using Syst ...
- .Net MVC+bootstrap Table学习
一.效果展示 二.使用方法 1).相关css和js的引用 <link href="~/Themes/Bootstrap/css/bootstrap.css" rel=&quo ...
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 3
原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第六节--abp控制器扩展及json封装
一,控制器AbpController 说完了Swagger ui 我们再来说一下abp对控制器的处理和json的封装. 首先我们定义一个控制器,在新增控制器的时候,控制器会自动继承自AbpContro ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十六节--SignalR与ABP框架Abp.Web.SignalR及扩展
SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...
- 使用bootstrap table 数据绑定
1.最近一直在用bootstrap table 这个前端框架做项目,下面是使用bootstrap table 的一些总结 这个使用.Net 中MVC做的: 2.这个是基本的boostrap table ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第六节--abp控制器扩展及json封装以及6种处理时间格式化的方法
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 一,控制器AbpController 说完了Swagger ui 我们再来说一下abp对控制器的处理和json的封 ...
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 1
原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...
随机推荐
- ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
开篇:经历了上一篇<aspx与服务器控件探秘>后,我们了解了aspx和服务器控件背后的故事.这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下.然后,再 ...
- 依赖倒置(DIP)与依赖注入(DI)
依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injection)是一种具体的实施方法. 依赖倒置 ...
- 【js技巧】~(按位非)运算符的妙用
今天在reivew部门牙套姐MM的代码的时候,有点小心得,给大家分享.我们常常说到,“学以致用”,但我发现自己却很少能真正做到.<javascript高级程序设计>即大家常说的“红宝书”, ...
- Azure PowerShell (2) 修改Azure订阅名称
<Windows Azure Platform 系列文章目录> Update: 2016-01-11 笔者文档主要都是用Azure PowerShell 0.x版本来实现的,比如0.98版 ...
- Step by step Dynamics CRM 2011升级到Dynamics CRM 2013
原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- 我所理解的Cocos2d-x
我所理解的Cocos2d-x(完全基于Cocos2d-x3.0,深度剖析计算机图形学,OpenGL ES及游戏引擎架构,全面提升游戏开发相关知识) 秦春林 著 ISBN 978-7-121-246 ...
- Constraint6:更新外键约束(Foreign Key Constraint)的引用列
在SQL Server中,表之间存在引用关系,引用关系通过创建外键约束(Foreign Key Constraint)实现.如果一个Table中的column被其他Table引用,那么该表是参考表,或 ...
- 记一次ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- Mac下有道笔记本问题反馈
1).Mac笔记上的编辑状态框非常的小.操作起来不是非常的方便.可以把显示稍微放大一些. 2). 新建笔记本的时候,这里用户可能没有注意到这里可以输入,此时这里的高亮的颜色可以适当的修改成别的颜色. ...