2015年1月17日星期六

以json格式发送对象集合作为参数的方法

一个页面,要同时修改多条数据,我们不可能向后端post多次来实现,可以一次post一个列表的形式将所有的数值都传给后端,然后后端统一处理。
先说前端,使用ajax技术post一个json对象是一个不错的方式,而我们的前端使用了knockout,viewModel正好也是json格式,而且knockout中还有一个ko.toJSON(viewModel)方法,非常简单,唯一需要注意的是在请求头中添加Content-Type: application/json,后端即可以自动反序列化为对象列表
var data = ko.toJSON(viewModel);
$.ajax('url',{
    'data': data,
    'type': 'POST',
    'contentType': 'application/json' 
});

再说后端,只要定义的接口参数中放入结构相同的列表就可以了
[HttpPost]
public ActionResult AfterCreditRepayNotifyDetailEdit(IList<AfterCreditRepayNotifyDetail> details)

以上过程在postman中测试是这样的: 
使用postman通过post方式传送json参数

2015年1月10日星期六

2014年总结与2015年目标

2014年已经过去了,这一年对我来说变化特别大,由于最后两个月换了工作,比原来忙了不少,所以也很少写博客了。在别人纷纷回望自己的一年时,我却累的不想打字,这个周末简单罗列一点,算是对自己过去的一年有个交代吧。
2014年经历的: 
1. 职业转型,没能转为希望的产品经理,却成了个专职程序员; 
2. 这一年,自己写过文档、画过原型、架设过服务器、接触云、从数据库到前端js代码,学了不少东西,感谢老叶的放纵,让我野蛮成长,也感谢老蒋的看重,将到带到新的平台; 
3. 自己写了个微信服务号程序,毫无宣传的情况下居然还有好几十号人订阅; 
4. 收入增加,能稍微改善点生活; 
5. 离开待了9年的公司,没有收到一句祝福与挽留,最后跟一个贱人吵了一架; 
6. 过年时带丁丁去了东北,丁丁很喜欢那里,也出奇的适应; 
7. 听了一场逼哥演唱会; 
8. 感谢所有容忍我一年的人;
现在的自己,年轻的面容早已不在,每天坐地铁时对着玻璃中自己大大的眼袋,心里也万般无奈,再该打拼的年纪自己选择了玩,现在只能还债,还好老天还算公平,晚努力总比不努力好,希望自己新的一年能有新的进步。
2015年计划如下: 
1. 购买VPS并搭建vpn与shadowsocks; 
2. 深入学习javascript,熟悉一个以上前端框架,比如Angular或React; 
3. 学会一门新的编程语言,比如php或swift; 
4. 入个MBP高配并掌握Mac系统; 
5. 锻炼身体; 
6. 每个月写一到两篇博客; 
7. 技术上继续学学学; 
8. 重构公司的系统,如果可能加入自己的产品想法; 
9. 忘记该忘记的,记住该记住的;

2015年1月5日星期一

javascript通过UserAgent判断访问设备

最近做的手机分享html页面中,有下载APP的按钮,需要判断访问设备是ios还是android系统,从而到对应的市场下载应用。
方法其实很简单,js判断userAgent中是否包含iPhone即可,再准确一点再判断个android还有分辨率之类的,但是我图省事就没做,代码如下:
function appDownload(){
    if(navigator.userAgent.indexOf("iPhone")>=0){
        location.href="https://itunes.apple.com/us/app/jin-rong-guan-jia100/id920332764?l=zh&ls=1&mt=8";
    }
    else{
        location.href="http://www.rongyu100.com/Uploads/Apps/FinaManager.apk";
    }
}
按钮点击时调用appDownload函数即可:
<a href="#" onClick="appDownload();" class="down pt-page-scaleUp">立即下载</a>