【橙子日记05】从零开始的毕业设计

更新时间:2021年1月15日

解决问题:
昨天留下了一个对象转json的问题
今天中午吃完饭特意来解决一下
问题所在:
在这里插入图片描述
.net5新出的json类,这个玩意儿我可算是记住了
坑:没法将对象转成json,但是可以将对象集合转成json(这是什么操作???)

解释:
昨天测试过了,放ccjson对象进去直接没有数据,断点问题就出现在这里,但是直接放课程表的集合进去,又可以转成json。
(一开始我还以为是我ccjson的问题)
在这里插入图片描述

解决:
还是用老牌的
在这里插入图片描述
虽然,我还是想用新版的。。。。。。

你肯定得疑惑了,微软出的json不能将对象转json那要这个类有什么用???
我也分析了一下,匿名类可以转
在这里插入图片描述
像这样,就可以转!真的莫名其妙啊!

既然如此,微软提供了转json方法,我们就最好不要用第三方的了。而且据说性能是newtonsoft的3倍!

思路:
既然不能将对象转换成json,那我们就不要在模型层加入新的模型,我改用common工具包,自己定义一个json工厂!
在这里插入图片描述
后续有不同格式的json只需要加入方法的重载即可!

我们控制器进行使用:
在这里插入图片描述
只需要在返回值的地方加上数据即可!不加参数是有默认参数的。
现在代码的扩展性提高了不是一个档次!从十几行到现在一行的代码。
编程是一种艺术。

前端
我们开始回到枯燥无味的前端
在这里插入图片描述
右边的卡片,要变成动态的数据。图片要为课程图片,现在还没没加这个功能,现在先用这个汉堡代替。。
我们后端已经返回这名同学的所有课程,现在弄前端

封装一下前端API:
在这里插入图片描述
写入方法:
在这里插入图片描述
数据得到了,连之前莫名其妙的报错都好了
在这里插入图片描述
很意外!竟然没有出现bug,现在感觉不踩两个坑,都对不起今天编的程!
在这里插入图片描述
莫得问题,也许真的是经验导致,bug之前搞项目遇到的几万个问题,这次都提前注意了点,然后就莫得问题了。

吃亏得教训,人才变聪明。

搞下一个模块:
学生选课界面
在这里插入图片描述
现在这里数据是死,我们要把他变活
首先是要从后端得到数据

继续完善
我们要返回课程表,但是得注意一下,这个地方,应该还要知道学生是否已经选了。这个还真不太方便,之前实现的是学生返回已经选择的课程,那现在就是要返还学生没有选择的课程,我可以调用上面的方法,然后查找所有课程,减去已经选择的课程。
现在就有2种做法了

  1. 后端直接处理好学生未选择的课程返回数据
  2. 后端返回学生处理好的数据,和全部数据,前端进行删减操作

第一种只能知道哪些课程没有选,第二种,虽然难度大点,但用户体验要好点的,最主要的是,一些计算还是放到前端吧,毕竟服务器贵啊!
有了思路,现在就开动!

选择第二种的话,后端难度不大:
在这里插入图片描述

具体实现应该算类似与数组的减法:
在这里插入图片描述
通过api获取数据
坑:记得这里不要同步发送!不要同步发送!后期项目得炸!老坑了!

写一个相减的算法:
在这里插入图片描述
在这里插入图片描述

  1. 代表学生有的课程
  2. 代表所有课程
  3. 代表学生还没选择的课程(这个是我们要的)
    坑:两个对象不一致 = =将不成立!
    在这里插入图片描述
    这里我们不能直接a==b,应该去比较课程的id,坑

坑:created钩子函数,里面的方法如果有2个,将会异步运行!,一开始我将减法的方法在钩子函数里面运行,结果直接读取不到,所以最好这里就放一个方法,或者放多个没有联系的方法!!!!!不然炸炸炸!
在这里插入图片描述
终于得到了我们想要的结果,数据库有4个课程,该学生有3个课程,还可以选择1个课程
在这里插入图片描述
接下来,把数据绑定到页面上去
在这里插入图片描述
特意多加了几门课程,莫得问题
开始做选择功能,之前的项目通常是每一行加一个操作按钮,不过感觉不是很美观,借鉴一下腾讯云的做法,特挑战一下弄一个多选操作
多选按钮的话,前端应该是要得到选择课程的id列表,后端接受课程id列表,然后进行操作

在这里插入图片描述
创建了一个存储选择列的id列表,然后将选择的数据id存入这个列表中

记得加入多选按钮组:
在这里插入图片描述
然后实现了多选的功能:
在这里插入图片描述
选中的数据会把课程id存入到
在这里插入图片描述
后端将他进行解析即可!

大功告成!慢慢来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值