嗯,我看到这两个属性,但我不明白它们之间的区别?
我似乎无法在任何地方找到任何有关PageData礼仪的帮助
所以身体有帮助吗?
@
{
Viewdata["something"] = 1;
PageData["something"] = 2;
}
感谢
答案 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类....