在 Weblog 中尝试 post 评论时出现字符串结尾预期错误

End of string expected error when trying to post comment in Weblog

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

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

还尝试用空 space 替换破折号。这两种解决方案都不起作用,因为我仍然收到错误。

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

这里是错误的截图供参考:

我没有体验过博客模块,但是对于您遇到的问题,您应该使用 # 转义破折号。请看下面的代码片段:

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

可以找到有关在查询中转义破折号的更多信息here

更新

您应该在发表评论之前调用此方法以转义破折号。您也可以从 here 下载 dll 并在您的解决方案中使用它