Ожидается ошибка конца строки при попытке оставить комментарий в блоге
Я пытаюсь решить проблему с размещением комментариев для блога, который использует модуль 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 отсюда и использовать его в своем решении.