1

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 でトレース システムを実装するためのより良い方法がある場合は、それについては、この質問のポイントではありません。)

4

1 に答える 1

2

プロパティにアクセスするにはPageData、次のコードを試してください。

WebPageContext.Current.PagaData

WebPageContextタイプは名前System.Web.WebPages空間で使用できます。

于 2011-02-24T04:59:05.090 に答える