Sitecore 中的常规链接

2024-02-10

我是 Sitecore 的新手。我创建了一个页面模板,并为“常规链接”类型的 URL 添加了一个字段。我为链接文本创建了另一个字段(这是该项目中的标准做法)。

我只是想在我的用户控件中显示链接,但我无法让它工作。这应该很简单,但我在兜圈子

这是我尝试过的代码示例..

ascx :

<asp:HyperLink runat="server" ID="lnkMain"></asp:HyperLink>

ascx.cs:

lnkMain.NavigateUrl = SiteCore.Context.Item.GetGeneralLink("Link1");
lnkMain.Text = item.GetFieldValue("Link1Text");

你应该小心使用linkField.Url因为它会错误地呈现 Sitecore 项目和媒体的内部链接。你应该使用Sitecore.Links.LinkManager.GetItemUrl(item) and Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)对于那些。

最好有一个帮助程序(扩展)方法根据链接类型为您返回正确的 url。看看这个Sitecore 与 LinkManager 和 MediaManager 链接 http://briancaos.wordpress.com/2012/08/24/sitecore-links-with-linkmanager-and-mediamanager/博客文章其中包含您所需的正确代码。

以供参考:

public static String LinkUrl(this Sitecore.Data.Fields.LinkField lf)
{
    switch (lf.LinkType.ToLower())
    {
      case "internal":
        // Use LinkMananger for internal links, if link is not empty
        return lf.TargetItem != null ? Sitecore.Links.LinkManager.GetItemUrl(lf.TargetItem) : string.Empty;
      case "media":
        // Use MediaManager for media links, if link is not empty
        return lf.TargetItem != null ? Sitecore.Resources.Media.MediaManager.GetMediaUrl(lf.TargetItem) : string.Empty;
      case "external":
        // Just return external links
        return lf.Url;
      case "anchor":
        // Prefix anchor link with # if link if not empty
        return !string.IsNullOrEmpty(lf.Anchor) ? "#" + lf.Anchor : string.Empty;
      case "mailto":
        // Just return mailto link
        return lf.Url;
      case "javascript":
        // Just return javascript
        return lf.Url;
      default:
        // Just please the compiler, this
        // condition will never be met
        return lf.Url;
    }
}

Usage:

Sitecore.Data.Fields.LinkField linkField = item.Fields["Link1"];
lnkMain.NavigateUrl = linkField.LinkUrl();

当然最好使用<sc:FieldRender>控制权并让 Sitecore 为您处理,但您似乎没有该选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sitecore 中的常规链接 的相关文章

随机推荐

  • 如何对 pandas 中的两个字段进行分组?

    给定以下输入 目标是使用 Avg 和 Sum 函数按每个日期的小时对值进行分组 按小时分组的解决方案是here https stackoverflow com questions 34941903 how group by sum and
  • 无法使用新的 Vagrant 安装 - 连接到 libvirt 时出错

    无论我是否有 Vagrant 文件 或者如果该文件不存在 我都会创建自己的文件vagrant init 顺便说一句 它有效 尝试执行此操作时出现错误 vagrant up 错误是 1 from usr share rubygems inte
  • 当 ObservableCollection 值更新时,WPF Datagrid 绑定不更新

    我有一个 WPF DataGrid 绑定到一个名为 Personnel 的 ObservableCollection 我在 DataGrid 中有一个可编辑的 DataGridCheckBoxColumn CheckBoxColumn 绑定
  • cfspreadsheet 以 d 结尾的字母数字值

  • Laravel 5 将视图和模型保留在资源视图目录中的单独文件夹中

    我已经搜索了很多我的要求 但没有找到适合我的工作解决方案 我正在使用 laravel 5 创建一个 Web 应用程序 我想将与管理员访问权限相关的所有控制器保留到控制器文件夹中的管理子文件夹中 为此我找到了很好的答案Laravel 控制器子
  • 如何在 YAML 中指定范围?

    我可以表达 第三页是扉页 in YAML title 3 那么下面的呢 第 10 至 15 页包含第 1 章 一种方法是 chapter 1 10 11 12 13 14 15 我更喜欢这里的范围 YAML中有类似的东西吗 chapter
  • 如何在 Play 中的静态方法中使用 play.cache.CacheApi!框架2.4.2

    我有一个 play 框架应用程序 我已将其迁移到 play 框架 2 4 2 上运行 它为 javascript html 前端提供 RESTful API 现在我在引入缓存时遇到了一些问题 LibraryController 将 JSON
  • Power Bi 中具有多轴的重叠条形图

    我想在 PowerBi 中有一个具有多个轴的重叠条形图 我有一个来自 Excel 的示例 如果可能的话 我希望在 PowerBi 中重新创建该示例 这里是例子 这在 PowerBi 中可能吗 也许通过使用我不知道的自定义视觉效果 提前致谢
  • AudioPlayer iOS 和 m4a

    我制作了一个使用 AVAudioPlayer 播放音乐的应用程序 它上传或下载歌曲 将它们写入核心数据 然后在选择时调用它们来播放 我测试过的所有 15 首歌曲都可以在 iPhone 音乐客户端和我自己的电脑上正常运行 但是 其中三个无法在
  • 动态复选框创建

    我想在我的 Android 应用程序运行时动态创建一组复选框 当应用程序运行时 除了按钮之外什么都不显示 我忘记了什么 提前致谢 public class DataNotificationSurvey extends Activity pr
  • 使用 PHP 在 CSV 文件中用双引号将每个字段括起来?

    我需要使用 PHP 将所有带有双引号的字符串和数字放入 CSV 文件中 如何从 PHP 创建 CSV 文件 并将所有数据放在双引号内 我正在使用此代码生成 CSV 我正在使用 codeigniter 框架 array array array
  • jQuery 切换 Cookie 支持

    我正在尝试将 jQuery Cookie 插件实现到我的幻灯片切换脚本中 但到目前为止尚未成功 这是我的代码 没有任何 cookie 实现 jQuery document ready function a toggle click func
  • Eclipse 缩进指南

    我正在尝试从以下网页安装 eclipse 的缩进指南插件 http sschaef github io IndentGuide http sschaef github io IndentGuide 我之前没有在 eclipse 中安装过插件
  • 进行机器间锁定有哪些好方法?

    我们的服务器集群由 20 台机器组成 每台机器有 10 个 5 个线程的 pid 我们想要某种方法来防止任何机器上任何 pid 中的任何两个线程同时修改同一个对象 我们的代码是用 Python 编写的并在 Linux 上运行 如果这有助于缩
  • 当应用程序在 WP 8.1 商店应用程序中恢复时,应用程序恢复事件不会触发

    我的 WP 8 1 商店应用程序的行为非常奇怪 当我快速离开然后返回时 应用程序恢复事件会按预期触发 但是 如果我将应用程序保留在后台一段时间 然后返回时 应用程序将触发 Constructor 和 OnNavigateTo 事件而不是 R
  • 检查 Rust 中的整数溢出[重复]

    这个问题在这里已经有答案了 Rust 有没有一种规范的方法来显式检查整数溢出 我用谷歌搜索但找不到答案 就像是 match add or overflow x y None gt println overflow Some z gt pri
  • 如何子类化 UILabel、UIButton 等 UI 元素

    我正在子类化UILabel in a CustomLabel class 当我尝试使用简单的方法时遇到问题UILabel我希望将来对其他元素进行子类化 我读到我可以创建一个category of UILabel 这东西哪一个比较好呢 类别还
  • Ansible Galaxy 角色安装到特定目录?

    所以我想我应该尽可能开始使用 Ansible Galaxy 而不是编写自己的角色 我刚刚安装了我的第一个角色 它被安装到 etc local ansible roles 我在 OSX 上 现在我想知道你如何在我真正需要的地方安装这个角色 我
  • Visual Studio 2012 附带哪个版本的 Dinkumware STL Lib?

    在早期版本的 Visual Studio 中 有一个预定义的宏 CPPLIB VER 它报告此版本 VS 附带的 Dinkumware STL 库的版本 截至 2012 年 我无法找到或使用这个宏 它未定义 并且我无法在网上找到有关此事的任
  • Sitecore 中的常规链接

    我是 Sitecore 的新手 我创建了一个页面模板 并为 常规链接 类型的 URL 添加了一个字段 我为链接文本创建了另一个字段 这是该项目中的标准做法 我只是想在我的用户控件中显示链接 但我无法让它工作 这应该很简单 但我在兜圈子 这是