[DNN中的Bug]在时区编辑器中存在的一个Bug
时区编辑器控件(adminLocalizationTimeZoneEditor.ascx)中有这样一个功能,它可以检查存储时区信息的本地化XML文件(App_GlobalResourcesTimeZones.zh-CN.xml)与默认的存储时区信息的XML文件(App_GlobalResourcesTimeZones.xml)的差别。在本地化文件缺少相应的条目时会要求增加,有多余条目时会自动删除。(条目是否相同用key值来标识,下面的XML中有key值的含义)如果我将本地化文件增加一个key相同的条目,如:
<root>
<!--
name="时区名"
key="相对GMT(格林尼治标准时间)的偏移量"
-->
<!-- 有一条重复key的值 -->
<timezone name="(GMT) 格林威治标准时 : 都柏林、爱丁堡、伦敦" key="0" />
<timezone name="(GMT) 格林威治标准时 : 都柏林、爱丁堡、伦敦" key="0" />
<timezone name="(UTC -12:00) 国际日期变更线" key="-720" />
<timezone name="(UTC -11:00) 中途岛、萨摩亚群岛" key="-660" />
<timezone name="(UTC -10:00) 夏威夷" key="-600" />
<!-- 其余省略 -->
</root>
<!--
name="时区名"
key="相对GMT(格林尼治标准时间)的偏移量"
-->
<!-- 有一条重复key的值 -->
<timezone name="(GMT) 格林威治标准时 : 都柏林、爱丁堡、伦敦" key="0" />
<timezone name="(GMT) 格林威治标准时 : 都柏林、爱丁堡、伦敦" key="0" />
<timezone name="(UTC -12:00) 国际日期变更线" key="-720" />
<timezone name="(UTC -11:00) 中途岛、萨摩亚群岛" key="-660" />
<timezone name="(UTC -10:00) 夏威夷" key="-600" />
<!-- 其余省略 -->
</root>
那么将会产生,无论怎样都会提示缺少条目且无法删除多余条目,如下图:
解决方法:在读取本地化文件到数据集后,定义时区信息表key为主键。如果定义不成功(有重复的key),则提示出错,然后进行相应的错误处理即可。
补充:Web开发 , ASP.Net ,