2011-06-21 51 views
13

嗯,我看到这2个属性,但我不明白他们之间的区别?
我似乎无法找到任何有关PageData礼节的任何帮助。
所以任何身体可以帮助?asp.net MVC 3中的ViewData和PageData有什么区别?

@ 
{ 
Viewdata["something"] = 1; 
PageData["something"] = 2; 
} 

感谢

+2

嗨Karim,可能是在你的代码片段中有“ViewPage”,但在你的问题中你有“PageData”。 – dizzwave

+0

谢谢你,固定 – Karim

回答

12

PageData是剃刀是建立在

[它]提供到被页,布局页,和部分页之间共享页数据阵列状访问网页的一个属性。

http://msdn.microsoft.com/en-us/library/system.web.webpages.webpagebase.pagedata(v=VS.99).aspx

ViewData的是的ViewPage的特性,并提供一控制器和页之间传递数据的方法。

获取或设置包含要在控制器和视图之间传递的数据的字典。

http://msdn.microsoft.com/en-us/library/system.web.mvc.viewpage.viewdata.aspx

ViewData的是经由所述控制器可访问的,PageData不是。

+0

谢谢,但这个问题很混乱,你也碰巧知道这两个中是否有任何关系到HttpContext.Current.Items []?我在web窗体中使用asp.net mvc之前。但它提醒了这两个优点。 – Karim

-2

可视数据是的ViewPage属性的属性,他们都在的ViewPage类....

+0

对不起,我在示例中犯了一个错误,它的Pagedata不是ViewPage – Karim

1

我不是100%肯定,但它看起来像PageData是什么WebMatrix(MS的“轻”Web开发环境)。 ViewData是MVC完全支持的东西。 ViewData位于System.Web.Mvc命名空间中,因此任何MVC应用程序都可以使用它。

页面数据显然(根据MSDN)在System.Web.WebPages命名空间中,但我无法从我的MVC控制器访问PageData,即使我完全限定它。也许这并不意味着从控制器端访问,像ViewData可以......?

在这个其他的StackOverflow问题here上的PageData上还有一些关于PageData的更多信息,但是它在网络上的信息奇怪地稀疏(正如你可能已经找到的那样)。

我希望有帮助!

相关问题