我什么时候应该避免使用强类型的viewdata?

时间:2009-02-24 19:48:04

标签: asp.net-mvc model-view-controller

我很欣赏我的观点和控制器中缺少“神奇的字符串”,但这种方法是否有任何缺点?

似乎没有。我已经在这里阅读了博客条目,但其中暗示不然。

3 个答案:

答案 0 :(得分:8)

模型的激增,在极端情况下为每个动作模型,以支持可能与数据模型不直接相关的其他视图属性。例如,如果视图因角色而异,则需要创建新模型以封装数据模型和角色相关设置。通过将数据模型用作视图模型并通过“魔术字符串”向ViewData添加一些设置,可以实现相同的效果。

编辑这不是“避免”强类型视图的理由,而是在选择何时创建新的特定于视图的模型而不是使用现有模型和扩展时给予一些平衡它与ViewData属性。

答案 1 :(得分:1)

我不建议避免使用强类型的viewdata,但我确信有一些会不同意。我能理解你是否正在进行快速原型制作,而你仍然在弄乱要显示的数据。强大的输入将为您提供更好的调试和编码体验。此外,花时间考虑您的viewdata将使您更好地了解您的设计,并最终导致更好的代码质量。

答案 2 :(得分:1)

据我所知,强类型viewdata没有单一的缺点。我不明白为什么魔术字符串和匿名对象无论如何都是MVC框架的一部分。我尽量避免这些。您不希望在其余代码中传递类型对象的参数,那么为什么要在UI中执行此操作?