You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在2sxc强类型模式下,如何从超链接字段获取页面/文件ID的Int值?

解决2sxc Hyperlink字段快速获取页面/文件ID的问题

你可以直接利用2sxc内置的IHyperlink类型提取ID,无需手动解析字符串,具体两种实现方式如下:

方法1:通过类型转换获取ID

使用Get<IHyperlink>()方法获取链接对象,直接访问其Id属性即可拿到原始ID:

@foreach (var aPage in pages)
{
    var link = aPage.Get<IHyperlink>("PageLink");
    <pre>
PageLink ID: @link.Id
    </pre>
}

如果是页面链接,link.Id返回页面ID;如果是文件链接,则返回文件ID,自动处理page:xx或file:xx的存储格式。

方法2:强类型模型直接访问(推荐)

若你的内容类型已生成强类型模型,Hyperlink字段对应的属性本身就是IHyperlink类型,直接调用Id属性即可:

@foreach (var aPage in pages)
{
    <pre>
PageLink ID: @aPage.PageLink.Id
    </pre>
}

这和你用@aPage.PageLink直接输出URL的逻辑一致——IHyperlink对象在直接输出时会自动转换为完整URL,而Id属性则对应存储的原始ID。

补充:.Int()方法无效的原因

.Int()方法仅会尝试将字段的显示值转换为整数:Hyperlink字段的默认显示值是解析后的完整URL,而用.Get()获取的原始存储字符串page:34也不符合整数格式,因此.Int()无法正确解析,返回默认值0。而IHyperlink是2sxc为链接字段专门设计的类型,内部已完成原始格式的解析,能直接提取ID。

内容的提问来源于stack exchange,提问作者Jeremy Farrance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:05:56