开发工具与关键技术:VS    
作者:宋永烨

此方法用于解决上个方法带来的问题,但也可以单独做一些使用,比如当你需要通过某个表的主键ID查询该表与其明细表,如果同时查询,会得到多个对象与数组,返回方法只能返回一个对象或数组.

解决此问题的方法,要么分成多个查询,一个对象或数组一个查询,但此方法过于繁琐,

所以通过一些特殊手段将之全部返回给页面

步骤一:创建一个类

ms slq create FUNCTION 返回多个值_下拉框


可以尝试将类直接写到需要该类的方法的控制器中,毕竟该类基本只会用到一次,当然如果一个控制器有多个方法需要传输多个值个页面,可以将多个类整合为一个

类创建完成后,就可以创建一些字段

ms slq create FUNCTION 返回多个值_数据类型_02


这些字段的数据类型与你需要传输的数据的数据类型需要保持一致

被荧光笔标记的就是数据类型

ms slq create FUNCTION 返回多个值_MVC_03


步骤二:赋值

ms slq create FUNCTION 返回多个值_MVC_04


创建一个变量,数据类型为上一步制作的类,然后初始化,调用类里的字段接收对应的需要返回给页面的值,最后将封装完成的变量(接收了所有需要传输给页面的值的变量)返回给页面即可

总结:
本方法相当简单,仅是一个思路而已,主要用于多数据回填页面,用于避免繁琐且重复的书写代码,但也有一些注意事项
直接通过Tostring方法获取到的时间的年月日的分割符是”/”,而如果你使用layui的时间的插件,不论你输入的时间是什么,最后输出的都是当前时间,
造成这个结果的主要原因是layui接收的时间类型的字符串支持的分割符是”-”,需要通过下图所示的方法进行转换

使用两个替换方法是由于此方法一次只替换一个(应该是替换所有才对,但此处只替换了一个)

方法拓展:

此方法除上述的用法外,还可以将控制器中下拉框绑定方法写在一个方法内,然后再通过用类接收的方式,全部返回给页面,然后页面通过循环将返回值拆分后赋值,

此方法比写多个简单的查询方法,然后一个一个的给下拉框赋值的运行速度快很多,

//写法

ms slq create FUNCTION 返回多个值_数据类型_05


此方法的运行效率与代码长度皆优于单个查询后回填的写法,但如果需要绑定的下拉框较少,该方法的优势就不够明显

在跨页面回填的时候,回填的数据已经回填到页面,但下拉框还未绑定会导致数据回填的不完整,所以需要等待下拉框回填完成后,再进行跨页面数据的回填,

通过本方法可以有化回填的速度,让跨页面回填的速度提升