Как получить доступ к PageData в файле WebMatrix C #? - PullRequest
1 голос
/ 24 февраля 2011

Многие примеры и руководства WebMatrix используют PageData для передачи данных между страницами в процессе создания страницы (например, между страницей содержимого и страницей макета).Например ...

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

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

Это прекрасно работает для простых ситуаций, но теперь у меня достаточно повторного кода с использованием PageData, и я хочу преобразовать его в некоторые классы C #.Однако ни в одном из примеров или документации, которые мне удалось найти, есть какие-либо операторы использования или какой-либо другой контекст, чтобы указать, что объект 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, то, хотя я также хотел бы узнать об этом, вопрос не в этом.)

1 Ответ

2 голосов
/ 24 февраля 2011

Чтобы получить доступ к свойству PageData, попробуйте следующий код:

WebPageContext.Current.PagaData

Тип WebPageContext доступен в пространстве имен System.Web.WebPages.

...