如何在WebMatrix C#文件中访问PageData?

时间:2011-02-24 04:24:25

标签: c# webmatrix

许多WebMatrix示例和教程使用PageData在页面构建过程中(例如在内容页面和布局页面之间)在页面之间传输数据。 例如......

@{
    Layout = "/Shared/_Layout.cshtml";

    PageData["Title"] = "Passing Data";
    PageData["TraceData"] += "Start of the main page.|";
}

这适用于简单的情况,但我现在有足够的重复代码使用PageData,我想将它重构为一些C#类。但是,在我找不到的任何示例或文档中,是否有任何“using”语句或任何其他上下文来指示PageData是什么对象(或属性)。在一个cshtml文件中,它“只是存在”一些我尚未确定的魔法。

如何在C#类中访问PageData?例如,我希望能够做到这样......

public static class MyTrace
{
    public static void Add(string aMessage) {
        PageData["TraceData"] += aMessage + "|";
    }

    public static string Read() {
        return PageData["TraceData"];
    }
}

(请注意:这个跟踪示例并不代表我的全部使用范围,但只是一个简单的例子来证明这一点。如果有更好的方法在WebMatrix中实现跟踪系统,那么我也希望要弄清楚这一点,这不是这个问题的重点。)

1 个答案:

答案 0 :(得分:2)

要访问PageData属性,请尝试以下代码:

WebPageContext.Current.PagaData

WebPageContext命名空间中提供了System.Web.WebPages类型。