我正在尝试为使用Weblog Sitecore模块的博客发布评论来解决问题。据我所知,如果博客条目网址包含破折号(即),那么我会得到“预期在行[#]”字符串的结尾错误。如果博客条目网址不包含破折号,则评论表单可以正常工作。
<replace mode="on" find="-" replaceWith="_"/>
还尝试用空格替换短划线。这两种解决方案都没有工作,因为我仍然得到错误。
Web.config中是否还有其他设置我可以改变以逃避网址中的破折号?我已经阅读了带有#符号的虚线URL文本,但我希望能够自动执行此操作,而不是让用户返回并重命名所有的博客条目。
以下是错误的屏幕截图供参考:{{3}}
答案 0 :(得分: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
有关在查询中转义破折号的更多信息,请访问here
<强>更新强>
您应该在发布评论之前调用此方法以逃避破折号。您也可以从here下载dll并在解决方案中使用它