ViewData和&之间有什么区别? asp.net MVC 3中的PageData?

时间:2011-06-21 16:58:08

标签: c# asp.net-mvc asp.net-mvc-3 razor

嗯,我看到这两个属性,但我不明白它们之间的区别?
我似乎无法在任何地方找到任何有关PageData礼仪的帮助 所以身体有帮助吗?

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

感谢

3 个答案:

答案 0 :(得分:12)

PageData是WebPages的一个属性,Razor构建于

之上
  

[it]提供对页面,布局页面和部分页面之间共享的页面数据的类似数组的访问。

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不是。

答案 1 :(得分:1)

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

PageData显然是(根据MSDN)在System.Web.WebPages命名空间中,但我无法从我的MVC控制器访问PageData,即使我完全符合它。也许它不是要从控制器端访问,就像ViewData可以......?

在另一个StackOverflow问题here中有关于PageData的更多信息,但网络上的信息非常稀疏(正如您可能已经发现的那样)。

我希望有所帮助!

答案 2 :(得分:-2)

Viewdata是viewpage属性的属性,它们都在viewpage类....