ASP .NET - Кэширование подстановки и вывода страницы (пончик) - Как передать пользовательский аргумент делегату HttpResponseSubstitutionCallback

Я хотел бы использовать функцию подстановки кэширования пончиков.

public static string GetTime(HttpContext context)
{
    return DateTime.Now.ToString("T");
}

...

The cached time is: <%= DateTime.Now.ToString("T") %>
<hr />
The substitution time is:
<% Response.WriteSubstitution(GetTime); %>

... Но я хотел бы передать дополнительный параметр в функцию обратного вызова рядом с HttpContext.
поэтому вопрос таков:
Как передать дополнительный аргумент в обратный вызов GetTime?
например, что-то вроде этого:

public static string GetTime(HttpContext context, int newArgument)
{
    // i'd like to get sth from DB by newArgument
    // return data depending on the db values

    // ... this example is too simple for my usage
    if (newArgument == 1)
        return "";
    else
        return DateTime.Now.ToString("T");
}

2 ответа

Решение

В противном случае, если ваша проблема заключается в том, что вы хотите получать разные выходные данные, основанные на разных аргументах, потому что вы используете подстановку выходных данных в разных местах на своем веб-сайте, я боюсь, что единственный способ - это определить разные функции или использовать только методы подстановки в качестве заглушки для фактического метода с аргументами.

Ну, вы можете сохранить любой аргумент в сессии. В методе GetTime эти аргументы могут быть доступны через HttpContext.

Другие вопросы по тегам