0

我正在尝试解决为使用 Weblog Sitecore 模块的博客发表评论的问题。据我所知,如果博客条目 url 包含破折号(即http://[domain.org]/blog/2016/december/test-2-entry),那么我会在第 [ #]“ 错误。如果博客条目 url 不包含破折号,那么评论表单可以正常工作。

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

还尝试用空白替换破折号。这两种解决方案都没有奏效,因为我仍然收到错误消息。

我可以更改 Web.config 中的其他设置以转义 url 中的破折号吗?我已经阅读了用# 符号括起来的虚线url 文本,但我希望能够自动执行此操作,而不是让用户返回并重命名他们的所有博客条目。

这是错误的屏幕截图以供参考:在此处输入图像描述

4

1 回答 1

3

我没有体验过 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并在您的解决方案中使用它

于 2017-03-17T20:51:29.137 回答