【福分系统】js有时无法接收controller传回的结果?
来源:互联网 发布:淘宝开店要交钱吗 编辑:程序博客网 时间:2024/06/03 23:04
小编最近做系统的时候,遇到了很多问题,虽然问题不难,但是多啊,虽然不难,但小编没有遇到过啊,于是,我开始了曲折的调试之旅。
问题之一:js有时无法接收controller传回的结果?这是为什么?
DAL
public List<ViewModel.addMcoinRecordViewModel> QueryLoadPersonScore(string date, string userName) { excellentmcoinEntities DBcontext = new excellentmcoinEntities(); List<ViewModel.addMcoinRecordViewModel> addmcoinList = new List<ViewModel.addMcoinRecordViewModel>(); addmcoinList = (from r in dbcontext.t_addmcoinrecord join u in dbcontext.t_user on r.userID equals u.userID where (r.date == date && u.userName == userName) select new ViewModel.addMcoinRecordViewModel { addMcoin = r.addMcoin, } ).ToList(); foreach (var item in addmcoinList) { item.AddMcoin = Convert.ToInt32(item.addMcoin); } int headmanbonus = 0; int cancelbonus = 0; if (addmcoinList.Count > 0 && addmcoinList!=null) { for (int i = 0; i < addmcoinList.Count; i++) { if (addmcoinList[i].AddMcoin >= 0) { headmanbonus += addmcoinList[i].AddMcoin; } else { cancelbonus += addmcoinList[i].AddMcoin; } } addmcoinList[0].headmanbonus = headmanbonus; addmcoinList[0].cancelbonus = cancelbonus; addmcoinList[0].allbonus = headmanbonus+ cancelbonus; } else { return addmcoinList; } return addmcoinList; } #endregion代码无非两种结果:
(1)从数据库查到数据,返回值为泛型
(2)从数据库查不到数据,返回值为null
当把结果通过BLL传回给controller时,也需要判断获得的结果,分别返回给JavaScript不同的结果。
controller
JavaScript
$(function () { $.ajax({ //请求后台的URL url: '/mobile_personScore/LoadPropertyBonusController', // 数据发送方式 type: "POST", // 接受数据格式 dataType: "text", success: function (data) { document.getElementById("propertybonus").value = data; propertybonus = parseInt(data); queryBonus(); } })}) function queryBonus() { $.ajax({ //请求后台的URL url: '/mobile_personScore/LoadBonusController', // 数据发送方式 type: "POST", // 接受数据格式 dataType: "json", success: function (data) { document.getElementById("headmanbonus").value = data[0].headmanbonus; document.getElementById("cancelbonus").value = data[0].cancelbonus; data[0].allbonus += propertybonus; document.getElementById("allbonus").innerHTML = data[0].userName+"今日获得总分为:" + data[0].allbonus; } })}由于js“data”返回值总是显示“[object object]”,但无法获取确定的值,小编就认为问题出在js,于是一直在修改js获得结果的代码。后来经人指导,才知道问题出现在controller。当controller获得的值是null时,应该构造一个数组作为返回值(单步调试的结果其实已经告诉我了,只是我没看出来)。
所以,controller正确的代码是这样的:
public ActionResult BonusController(string date) { string userName = Session["userName"].ToString(); McoinBonusBLL mcoinbonusBLL = new McoinBonusBLL(); List<ViewModel.addMcoinRecordViewModel> addMcoinList = new List<ViewModel.addMcoinRecordViewModel>(); addMcoinList = mcoinbonusBLL.QueryLoadPersonScore(date,userName); if (addMcoinList != null && addMcoinList.Count > 0) { //序列化返回值 var tempType = from c in addMcoinList select new { headmanbonus = c.headmanbonus, cancelbonus = c.cancelbonus, allbonus = c.allbonus, attrimcoin = c.Attrimcoin }; return Json(tempType);//JsonResult } else { //序列化返回值 var tempType = new ViewModel.addMcoinRecordViewModel[]{ new ViewModel.addMcoinRecordViewModel() { headmanbonus = 0, cancelbonus = 0, } }; return Json(tempType);//JsonResult } } #endregion
小结
经过这一番调试,我觉得主要问题在于这一阶段的内容学的不扎实,对于一些基础知识没有一定的敏感程度,学习的内容没有形成知识网。接下来的安排就是把这些欠下的都补上来。
阅读全文
0 0
- 【福分系统】js有时无法接收controller传回的结果?
- js中text接收子界面传回的值
- 【福分系统】项目小结
- 【福分系统】EasyUI真假分页
- 【福分系统】MUI日期控件
- 【福分系统】bootstrap表格控件
- operamasks js 接收 controller 非格式化值
- JSP无法接收到Controller返回的Model(有点小坑)
- 页面有时无法输入中文的解决方案
- 远程桌面有时无法复制文件的问题
- 用原生js,json解析ajax传回来的数据
- Android 有时接收不到自己发送的广播消息
- Ajax使用方法,经典Ajax封装,可接收解析后台传回的json对象和json数组
- BitmapFactory.decodeStream接收servlet传回的图片数据流慢、卡死、延迟问题
- ashx一般处理程序接收ajax传回的json字符串,并写入到数据库
- controller中接收JSP传递的JSON
- 有时成功不是个结果,而是那份寻梦的经历
- Debug和Release有时运行结果不同的原因
- 凡普金科前端面试题
- 面向对象
- 砝码称重
- 初识Cookie
- 【SDK驱动开发1】中断的使用(以一个dma为例)
- 【福分系统】js有时无法接收controller传回的结果?
- codeforces 303E
- Tyvj1208(LIS数量)
- 深入理解JavaScript系列
- C#219课的主要内容
- 第三周 求集合并集
- sql 20170922
- 一道关于对象传参的面试题
- Python内存管理机制