2012-06-07 107 views
0

有一个疑问在MVC体系结构中,我们可以将数据从控制器传递到直接查看而不创建强类型视图,而不是为什么需要使用模型..?模型中有什么?为什么我们需要使用它

如果我们将数据保存在ViewData [“”]中并在视图中使用它来显示信息,是否会降低应用程序的性能? 。 ?

+0

嗯,对于一个人来说,你认为使用实际对象比字典更好吗? –

+0

是的,这也是 – dLcreations

+0

在正确实现的MVC中,* Model Layer *会观察* View *,并对变化做出反应。在Model2 MVC(又名Web MVC)中,* View *将从* Model layer *请求数据。所以......基本上你正在解决错误的困境。另外..我真的希望你不是一个无人驾驶飞机,“MVC”是“ASP.NET MVC 3”的代名词,因为没有提到任何语言。 –

回答

2

技术上将数据存储在集合(ViewData)中的速度将比传入强类型模型(具体类)稍慢,但差别非常小。内存占用量也有小幅增加(因为你需要为集合和集合中的东西存储内存),但这又应该是无足轻重的。

强类型模型提供了控制器和视图之间的明确契约。我个人更喜欢他们。

可以有简单的视图,其中开发人员觉得没有必要创建一个强类型来表示控制器/视图合同。为此需要,ViewData存在。

我想,ViewData也被一些人用来传递额外的数据,而这些额外的数据在强类型模型中并不是最初设想的。我鼓励在这种情况下重构强类型,而不是在ViewData中传递额外的数据。

我可能缺少ViewData的“合法”用途,但到目前为止我还没有遇到任何问题。