【问题标题】:what is the difference between ViewData & PageData in asp.net MVC 3?asp.net MVC 3中的ViewData和PageData有什么区别?
【发布时间】:2023-03-08 17:37:01
【问题描述】:

嗯,我看到了这 2 个属性,但我无法理解它们之间的区别?
我似乎无法在任何地方找到有关 PageData 属性的任何帮助。
那么任何身体都可以提供帮助吗?

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

谢谢

【问题讨论】:

  • 嗨,Karim,可能是在您的代码 sn-p 中您有“ViewPage”,但在您的问题中您有“PageData”。

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


【解决方案1】:

PageData 是构建 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 不是。

【讨论】:

  • 谢谢,但是这个问题非常令人困惑,您是否知道这两个是否与 HttpContext.Current.Items[] 有关系?我在 web 表单中使用 asp.net mvc 之前使用它。但它提醒了这两个属性。
【解决方案2】:

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

PageData 显然(根据 MSDN)在 System.Web.WebPages 命名空间中,但即使我完全限定它,我也无法从我的 MVC 控制器访问 PageData。也许它不应该从控制器端访问,比如 ViewData 可以......?

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

希望对你有帮助!

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 对不起,我在示例中犯了一个错误,它的 Pagedata 不是 ViewPage
    猜你喜欢
    • 2011-05-06
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多