WebMatrixの例とチュートリアルの多くは、PageDataを使用して、ページ構築プロセス中にページ間でデータを転送します(コンテンツページとレイアウトページの間など)。例えば は...WebMatrix C#ファイルのPageDataにアクセスする方法は?
@{
Layout = "/Shared/_Layout.cshtml";
PageData["Title"] = "Passing Data";
PageData["TraceData"] += "Start of the main page.|";
}
これは、単純な状況では正常に動作しますが、私は今、私はいくつかのC#クラスにそれをリファクタリングしたいInboundのPageDateを使用して、十分な繰り返しのコードを持っています。しかし、私が見つけることができた例やドキュメンテーションのいずれも、「使用」ステートメント、またはPageDataがどのオブジェクト(またはそのプロパティ)であるかを示すその他のコンテキストはありません。 cshtmlファイルでは、それは私がまだ決めることができなかったいくつかの魔法の「ただそこに」ある。
PageDataにC#クラスでアクセスするにはどうすればよいですか?例えば、私は...このような何かをできるようにしたいと思い
public static class MyTrace
{
public static void Add(string aMessage) {
PageData["TraceData"] += aMessage + "|";
}
public static string Read() {
return PageData["TraceData"];
}
}
(ご注意:このトレースの例では、私の使用方法の全範囲を表すものではありませんが、ポイントを証明するだけの簡単な例でありますWebMatrixでトレースシステムを実装するより良い方法があれば、それについても知りたいと思いますが、この質問のポイントではありません)
ありがとうございました。これは、少なくともほとんどの場合、うまく機能します。 _PageStart.cshtmlファイルから呼び出されたときに私が見つけた例外が1つあります。この場合、PageDataアクセスは機能しているようですが、追加されたデータは_PageStartページの外側には表示されないため、他のPageDataのコピーと同じでなければなりません。私はまだこれで少し混乱していますが、私はそれを回避することができます。 –