我在SenseNet中有一个内容定义(CTD),它有一个允许选择多个值的选择字段(AllowMultiple
为true)。 XML定义是这样的:为什么我无法将内容导入选择多个选项的SenseNet?
<Field name="Status" type="Choice">
<DisplayName>Status</DisplayName>
<Configuration>
<AllowMultiple>true</AllowMultiple>
<Options>
<Option>In Processing</Option>
<Option>In Review</Option>
<Option>Tabled</Option>
<Option>Pending Verification</Option>
<Option>Approved</Option>
</Options>
</Configuration>
</Field>
当我出口与选择多个选项中的数据,对这一领域的XML输出界定选择题的选项与;
(分号+空间),看起来是这样的:
<Status>Pending Verification; Approved</Status>
当我尝试导入导出的数据时,出现InvalidExtraValue
错误。
我该如何解决这个问题?
此代码是垃圾。为什么你想要将一个字符串转换为列表?为什么对象有时会是一个字符串,而其他时候是列表我怀疑真正的问题是导入方法认为分号是html特殊字符的一部分。请参阅:https://www.google.com/search?q=wiki+xml+html+special+characters&rlz=1C1OPRA_enUS563US647&oq=wiki+xml+html+special+characters&aqs=chrome..69i57.15711j0j7&sourceid=chrome&ie=UTF-8 –
jdweng
代码可能不像人们想要的那样可读,但是,它的源代码非常直接。在这些情况下,最重要的是不要改变函数的行为,这就是你所看到的。如果你理解了SenseNet Content模型,你就会知道为什么它需要一个对象参数,它可以是一个字符串,IEnumerable或List。你对这个问题的怀疑是不正确的。所写的代码解决了这个问题。 –
答案没问题,不同类型的转换与sensenet有关,它们是由设计决定的。第三个选项是使用选项的值(ctd中的属性)。这样,您可以同时使用人类可读的选项文本和选项值,而不需要空间。 –