WebMatrix の例とチュートリアルの多くは、PageData を使用して、ページ構築プロセス中にページ間 (コンテンツ ページとレイアウト ページ間など) でデータを転送します。例えば...
@{
Layout = "/Shared/_Layout.cshtml";
PageData["Title"] = "Passing Data";
PageData["TraceData"] += "Start of the main page.|";
}
これは単純な状況では問題なく機能しますが、PageData を使用する繰り返しコードが十分にあるので、いくつかの C# クラスにリファクタリングしたいと考えています。ただし、私が見つけた例やドキュメントのいずれにも、「使用」ステートメント、または 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 でトレース システムを実装するためのより良い方法がある場合は、それについては、この質問のポイントではありません。)