2009-02-18 59 views
0

我正在设置一个向导。我所有的向导视图都需要访问常用的数据,例如TotalWizardSteps和CurrentWizardStep。我试图找到将这些常用数据添加到ViewDataDictionary的最佳方法。我正在考虑创建我自己的WizardStepViewPage。这个子类将有一个属性'WizardData',它返回一个WizardData对象。这将让我写了下面的代码在我的观点:继承ViewPage以共享常见ViewData:它是否愚蠢?

<p>Wizard Step:<%= WizardData.CurrentStep %></p> 

的后备存储此WizardData对象将是的ViewDataDictionary有的unlikley复制键,如“__TheWizardData”。我会用actionfilter在这个键上设置值。

这听起来很凌乱,但我认为它会奏效。它是愚蠢的吗?有没有更好的方法来实现这一目标?

我想:

  • 强类型的HTML标记访问wizardData
  • 为了让自己的行动一无所知,需要建造wizardData
  • 为了使我的强类型的ViewData类无知wizardData
+0

我已经完成了你的建议,取得了很好的成功。 ViewDataDictionary魔术字符串是它唯一的一部分,看起来有点奇怪,但我也能够接受它。 – 2009-02-18 19:28:40

回答

3

我认为你应该创建一个模型类来保存必要的信息并用它来创建一个强类型的视图。

我没有看到你可能需要从强类型的模型隐藏WizardData一个很好的理由,但如果你真的这样做,你为什么不为ViewPage而不是继承创建扩展方法是什么?继承不适用于不同类型的ViewPage(键入,无类型)。

+0

请注意最后一个项目符号。 – 2009-02-18 19:23:23