前情提要:
现在需要使用异步提交表单数据(QueryString方式),但数据个数比较多,一个个拼接比较麻烦,这时可以使用jQuery的方法$("form").serialize()对表单进行序列化。但是如果这时,数据中有几个是相同的name属性,这是在后台使用Request[".."]就只能接收第一个的值。于是,问题就来了,下面是解决方案:
这时候可以在前端提交的时候处理一下,方法是:遍历选中的checkbox,得到value值,拼接(用逗号分隔),再提交到后台。对于数据比较多的情况,这种方法,比较麻烦并且$("form").serialize()这个方法就浪费了。
更好的办法是,在后端直接使用Request.Params[".."]来接收,这时得到的就是用逗号分割的字符串。
举个栗子:比如在为用户设置角色时,一般使用checkbox来显示角色。因为一个用户可以有多个角色,这时在提交的时候因为checkbox具有相同的name属性,就会出现多对值(key相同),这时候就可以用Request.Params[".."]来获取选定的角色的ID(checkbox的value存放的是角色表的Id)了。