哪里体检网的后台富文本编辑器,用的是百度uedit编辑器,最近出现了一个奇怪内容重复问题,其中的分析与解决,有点意思,与大家分享一下。
【现象】
编辑,保存后,前台显示的内容,在同一个字段内,内容重复出现了两次。
只是有的时候出现,而且,只有用了编辑器的字段出现问题。
【分析排查】
一、后—>前
为什么会出现了两次,逆向跟踪;
后端接收程序获取编辑器中的富文本内容,是用官网的方法:
1: //NET获取:
2: context.Request.Form["myContent"];
查看”Form”的值,发现,这里同个键,重复出现了两次,所以,最后存到数据库中,就把两同的两个值用”,”隔开都存了进去。
那为什么会出现两次呢?
二、前—>后
这个编辑后台,交互较多,而这个现象时有时无,说明它的出现,是与某个操作有关。
通过排除法,确认,与后台一个Ajax操作有关。本人新手,用的是VS自带的Ajax控件。
每用这里的控件,到服务器查询一次,最后保存的时候,Form中编辑器的键值就会重复一次。
具体原因,不明。
【解决方案】
很显然,两个方案:
一、不让它生成两个。
二、管它重复生成几个,我只取Form中的第一个;
第一个方案,暂时没能力解决,偷懒用第二个方案。即,把取值的方法改为:
1: //取FORM中相同键的值数组的最后一个
2: Context.Request.Form.GetValues("myContent").Last();
OK!
另外,之前老提示字段超出,被截断,出错的问题,应该也与此有关,一并解决。