Sitecore最简洁的方式来存储表单字段标签

时间:2012-11-14 14:52:16

标签: sitecore

我正在开发一个Sitecore实现,整个网站中有很多表单(在你问之前,WFFM是不可能的!)。

我的问题是,存储表单标签的最佳方法是什么?我目前的想法是使用字典结构并按键访问表单字段标签。这种方法的问题在于编辑者想要改变同一领域的标签;例如在表单X上,名字字段是“名字”,然后可能在其他地方,它可能是“Forename”,或者它可能是一个必填字段(带星号),在另一个地方是可选的。我真的不想开始使用名为“FirstNameWithAsterisk”和“FirstNameWithoutAsterisk”等字典项目。

另一个想法是将表单标签存储在名称值列表字段中。然后可以使用名称/值填充此字段,编辑可以自由使用他们喜欢的任何表单标签,而不会无意中编辑其他地方使用的字典条目。

在页面模板上有表单字段之前我一直在路上,但这是一个非常可怕的解决方案恕我直言,所以我不会有兴趣再次沿着这条路线走。

修改

要确认,此网站的表单数量有限。

2 个答案:

答案 0 :(得分:1)

我会选择字典方法。如果你的论点是它可以变化,那么这就是逻辑上将它们分开的理由。所以,听起来你有自定义表格和一组有限的表格(请确认)。也就是说,像这样建立你的字典,例如

  • Form1中
    • Form1中-姓
  • 窗体2
    • 窗体2-姓

或另一个对你有意义的命名约定。

逻辑上它是每个唯一形式的“名字字段”,但它们在技术上是两个不相关的东西,因此你需要两个字典项。您可以通过您提到的命名约定来执行此操作,但不要根据内容命名它们(因为该值会更改!),而是根据它应用于/使用它的位置命名它,因为您的代码将静态地请参阅密钥。

所以我会说FirstNameWithAsteriskFirstNameWithoutAsterisk是坏名字,因为它们与内容有关,是否有星号。相反,请根据其应用的形式或内容的其他一般概念来命名。

修改:由于可以将同一个表单组件添加到多个页面,因此这是data source of that presentation component的完美案例。只需为所有表单字段创建一个模板,然后创建任意数量的实例,并为绑定到页面的每个表单,将其数据源指向具有所需字段值的相应项目。

答案 1 :(得分:0)

你知道Sitecore中有一个内置的词典吗?看看系统/字典。然后通过调用Sitecore.Globalization.Translate.Text()来获取它的值。

如果你肯定不支持多种语言......那么你可以想象一下这个功能,并使字典项的不同语言版本实际上是你想要的字段标签的不同值。