我正在尝试获得一个完全限定的url,这是代码
string path = string.Format("/sitecore/shell/Applications/Content%20Manager/default.aspx?id={0}&la={1}&fo={0}", contentItem.ID, contentItem.Language);
string fullPath = Sitecore.Web.WebUtil.GetFullUrl(path);
text = text.Replace("$itemUrl$", fullPath);
这会返回类似的内容http://cp.localsite/sitecore/shell/Applications/Content%20Manager/default.aspx?id={DC6B4AE-0929D-4F19-97F4-825796A30781}&la=en&fo={DC6B4AE-0929D-4F19-97F4-825796A30781}这是像链接一样生成的,直到?id=从id来看,它看起来像一个普通的文本。我该如何解决这个问题。我想要内容的可点击网址。我真的很感激任何帮助。
谢谢。
您能否提供更多关于您正在努力实现的目标的上下文。所描述的行为是正确的,但显然不是你所希望的。
更新:
看起来你走在了正确的轨道上,我唯一注意到的是,你只需使用fo querystring就可以找到正确的项目,你也可以使用这里提到的其他项目。带有链接的自定义电子邮件通知-sitecore来获得更具体的信息。
因为url在id=处被截断的原因是文本解析器可能不喜欢卷曲的brackets——试着对url进行编码,看看这是否有效。
text = HttpUtility.UrlEncode(text);