目前我仍在学习 Sitecore,我想做的是获取 Sitecore 网站中多个页面的 URL,并使用它们在 JavaScript 中设置一些 URL。
这是我设置的 JavaScript:
<script>
var page_data = {
residentialUrl: '[Sitecore page link]',
airportsUrl: '[Sitecore page link]',
universitiesUrl: '[Sitecore page link]',
officesUrl: '[Sitecore page link]',
tunnelsUrl: '[Sitecore page link]',
hospitalsUrl: '[Sitecore page link]',
sportsUrl: '[Sitecore page link]',
publicSafteyUrl: '[Sitecore page link]',
governmentUrl: '[Sitecore page link]'
}
</script>
如果您将每个 url 变量的 url 放在单引号内,它确实有效。但我想要的是为每个 url 变量放入 Sitecore 项目的 url。我知道如何获取 Sitecore 项目 url,但我不确定在这种情况下如何使用它们来设置上面的 url 变量?我不想硬编码链接。我希望它们从 Sitecore 的字段中提取。有办法做到这一点吗?
最佳答案
您可以采用以下一种方法(假设您的 javascript 在 Sitecore 布局或子布局中)(未经测试但希望能有所帮助)。
您可以在选择要链接到的项目时从内容编辑器中获取 Sitecore ID(替换下面的 {your-guid-here})。
此外,我不建议在生产应用中硬编码 ID:)
C#
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();
}
protected string ResidentialUrl {
get {
return GetUrl("**{your-guid-here}**");
}
}
protected string AirportsUrl {
get {
return GetUrl("**{your-guid-here}**");
}
}
private string GetUrl(string guid)
{
// get item from the current database (usually web or master)
var item = Sitecore.Context.Database.GetItem(new Sitecore.Data.ID(guid));
// use LinkManager to get the public URL
return Sitecore.Links.LinkManager.GetItemUrl(item);
}
JS:
<script>
var page_data = {
residentialUrl: '<%#Eval("ResidentialUrl")%>',
airportsUrl: '<%#Eval("AirportsUrl")%>',
// ... etc
}
</script>
关于javascript - 将 Sitecore 项目 url 附加到 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28947148/