Ожидается ошибка конца строки при попытке оставить комментарий в блоге

Я пытаюсь решить проблему с размещением комментариев для блога, который использует модуль Weblog Sitecore. Из того, что я могу сказать, если URL-адрес записи блога содержит тире (то есть http://%5Bdomain.org%5D/blog/2016/december/test-2-entry), то я получаю "Конец строки, ожидаемый в строке [#]" ошибка. Если URL-адрес записи блога НЕ содержит тире, то форма комментария работает нормально.

<replace mode="on" find="-" replaceWith="_"/>

Также попытался заменить приборную панель на пустое место. Ни одно из решений не сработало, так как я все еще получаю ошибку.

Есть ли какой-то другой параметр в файле Web.config, который я могу изменить, чтобы избежать тире в URL? Я прочитал, что включенный пунктирный текст url с символом # работает, но я хотел бы иметь возможность сделать это автоматически вместо того, чтобы пользователь возвращался и переименовывал все свои записи в блоге.

Вот скриншот ошибки для справки:

1 ответ

Решение

Я не испытал модуль Weblog, но для проблемы, с которой вы сталкиваетесь, вы должны избежать черты с #, Пожалуйста, посмотрите следующий фрагмент кода:

public string EscapePath(string path)
{
    string[] joints = Regex.Split(path, "/");
    string output = string.Empty;
    for (int index = 0; index < joints.Length; index++)
    {
        string joint = joints[index];
        if (!string.IsNullOrEmpty(joint))
            output += string.Format("#{0}#", joint);

        if (index != joints.Length - 1)
            output += "/";
    }

    return output;
}

Ссылка: https://github.com/WeTeam/WeBlog/issues/52

Более подробную информацию об экранировании тире в запросах можно найти здесь

ОБНОВИТЬ

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

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