Как получить доступ к объекту запроса в функции Page_Load в Kentico 9?

Мне нужно проверить наличие тега привязки в URL, изнутри преобразования. Я предполагаю, что это будет в Page_Load функции, но я не могу найти хорошую документацию по этому вопросу.

Как я могу это сделать? Спасибо!

2 ответа

Решение

Якоря не передаются на сервер и, следовательно, Uri.Fragment нет в Request объект. Вы можете использовать это свойство только для создания URI.

Если вам нужно передать данные на сервер, используйте параметры запроса или скрытые поля.

Если вам нужно оценить URI, хранящиеся в БД, используйте подход Брендена.

В вашем преобразовании вы можете создать простую функцию, используя подобный код ниже:

<script runat="server">
    public bool UrlHasAnchor()
    {
        string myUrl = ValidationHelper.GetString(Eval("YourUrlColumn"), "");
        if(myUrl.Contains("#"))
        {
            return true;
        }
        return false;
    }
<script>

Теперь назовите его, когда вы устанавливаете значение следующим образом:

<%# If(UrlHasAnchor(), "do something crazy", "don't do anything at all") %>

Вы также можете создать собственный метод преобразования, который будет делать то же самое.

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