记一次 Newtonsoft.Json 巧妙的用法(C#)
数据添加的功能
有一个表格提交数据如下:

是否选择和文本值。分开保存到数据库太麻烦。取得时候也麻烦
想到了存成json数据。一个字段就可以了。
html代码:
<table class="table">
<tr>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="学费" /> 学费
</p>
<input class="form-control cek-0" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="材料费" /> 材料费
</p>
<input class="form-control cek-1" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间活动费" /> 项目期间活动费
</p>
<input class="form-control cek-2" type="text"></td>
</tr>
<tr>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间住宿费" /> 项目期间住宿费
</p>
<input class="form-control cek-3" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间早餐" /> 项目期间早餐
</p>
<input class="form-control cek-4" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间午餐" /> 项目期间午餐
</p>
<input class="form-control cek-5" type="text"></td>
</tr>
<tr>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间晚餐" /> 项目期间晚餐
</p>
<input class="form-control cek-6" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="项目期间交通费" /> 项目期间交通费
</p>
<input class="form-control cek-7" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="生活与数学指导" /> 生活与数学指导
</p>
<input class="form-control cek-8" type="text"></td>
</tr>
<tr>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="签证费" /> 签证费
</p>
<input class="form-control cek-9" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="国际往返机票" /> 国际往返机票
</p>
<input class="form-control cek-10" type="text">
</td>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="当前接送及大巴费用" /> 当前接送及大巴费用
</p>
<input class="form-control cek-11" type="text"></td>
</tr>
<tr>
<td>
<p class="title">
<input type="checkbox" class="info-item" data-title="保险费" /> 保险费
</p>
<input class="form-control cek-12" type="text">
</td>
<td></td>
<td></td>
</tr>
</table>
全选:
//全选反选
$("#sel-all-info").click(function () {
var _checked = $(this).prop('checked');
$('.info-item').prop('checked', _checked);
});
取值:
var datalist = [];
$('.info-item').each(function (k, v) {
datalist.push({ "index": k, "prop": $(v).prop('checked'), "val": $(".cek-" + k).val(), "title": $(v).data("title") });
});
console.log(JSON.stringify(datalist));
结果:

这样。添加的时候。json值就可以一起保存到数据库里
我们再看一下怎么取值:
在控制器里:
List<table_info> list = new List<table_info>();
list = JsonConvert.DeserializeObject<List<table_info>>(model.ItemIntro);
ViewBag.list = list;
在view视图里.我们把 ViewBag.list 数据转换成 List<table_info>
int index = ;
var list = ViewBag.list as List<table_info>;
<table class="table">
<tr>
@if (list != null && list.Count() > )
{
foreach (var item in list)
{
string style_s = "";
index++;
if (index % == )
{
style_s = "</tr><tr>";
}
<td>
<p class="title">
<input type="checkbox" @(item.prop == true ? "checked" : "") class="info-item" data-title="@item.title" /> @item.title
</p>
<input class="form-control cek-@(index - 1)" type="text" value="@item.val">
</td>
@Html.Raw(style_s)
}
} </tr> </table>
最后,我们来看一下循环出来的界面:

主要用到了。Newtonsoft.Json的反序列化,先把数据存成json保存到数据库。修改的时候。反序列化为list model ,在视图里foreach 。。
还有很多功能也可能用这个思路去实现。
欢迎大家拍砖
记一次 Newtonsoft.Json 巧妙的用法(C#)的更多相关文章
- 记录Newtonsoft.Json的日常用法
最近在做一个使用基于.net mvc 实现前后台传输Json的实例.网上找了一些资料.发现在开发的时候,许多的数据交互都是以Json格式传输的.其中涉及序列化对象的使用的有DataContractJs ...
- Newtonsoft.Json 的高级用法
Ø 简介 接着前一篇http://www.cnblogs.com/abeam/p/8295765.html,继续研究 Newtonsoft.Json 的一些高级用法.主要包括: 1. JSON ...
- Newtonsoft.Json 的解析用法。
JsonView是查看和分析json的利器,目录下的Newtonsoft.Json.dll ,我们可以当第三方引用之. >>> //想服务器端发送请求,获取订单信息 myReques ...
- Newtonsoft.Json 的基本用法
Ø 前言 说起 C# 对 JSON 的操作(序列化与反序列化),大家都会想到 JavaScriptSerializer.DataContractJsonSerializer 与 Newtonsoft ...
- Newtonsoft.Json高级用法(转)
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- 【转】 Newtonsoft.Json高级用法
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- 转:Newtonsoft.Json高级用法
原文地址:http://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多 ...
- Newtonsoft.Json高级用法,json序列号,model反序列化,支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity,字符串
原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口 ...
随机推荐
- 极光开发者服务推出统计产品JAnalytics
极光以提供更加全面的开发者服务为目标,利用极光推送的数据和网络优势结合更丰富的功能,推出了极光统计(英文:JAnalytics).至此,极光开发者服务更加丰富.完善了. 极光统计有独立的统计 SDK, ...
- Spring Cache扩展:注解失效时间+主动刷新缓存
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- Linux实战教学笔记21:Rsync数据同步工具
第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...
- 2017-03-10 T-sql 语句 高级查询
T-SQL语句: 创建数据库: 1,点击新建查询,在弹出的页面上进行代码编写.点击可用数据库,编写前确定当前操作的页面是自己想要进行操作的界面. 2,数据库创建语句 Create datebase ...
- 变量 || 基本数据类型 || if、while语句
变量名:只能由数字.字母.下划线组成且不能以数字开头:变量名不可以是python内部的关键字 基本数据类型:数字.字符串.布尔值(True/False) [if条件语句] if 条件: ...
- WeMall商城系统的Android app商城中的wemall-mobile代码
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改. [适合研究学习,支持wemall3.x版本] 1.快 ...
- (0)写给Web初学者的教案-----Web基础
0,Web基础 一. What is the Web? Can It Eat? 很多同学可能都听说过一个名词叫做“Web”,这个词隐隐约约好像和我们上网相关.但是呢,又很难说的清楚.我们今天每位 ...
- 1113: [Poi2008]海报PLA
1113: [Poi2008]海报PLA Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 765 Solved: 466[Submit][Status ...
- 使用Git将本地仓库与GitHub远程仓库相关联
这篇文章详细讲解了如何生成SSH,并链接到GitHub,123..... 1.如果你的GitHub里面没有仓库,就自己生成一个,如图所示 2.如果你有自己仓库,想在电脑本地新建一个,你需要将GitHu ...
- Redis Sentinel中的机制与原理详解
序言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案.实际上这意味着你可以使用Sentinel模式创建一个可以不用人为干预而应对各种故障的Redis部署. 它的主要功能有以 ...