如何在2sxc中获取并输出DNN页面的Large Icon?
解决方案
可以实现这个需求,问题在于2sxc的ICmsPage是跨CMS的抽象接口,并没有封装DNN特有的LargeIcon属性,需要直接调用DNN的原生API来获取页面设置里的图片:
- 首先通过DNN的
TabController获取当前页面的原生TabInfo对象,它包含DNN页面设置的所有属性 - 从
TabInfo对象中读取LargeIcon属性,就是管理员设置的横幅图片路径
示例Razor代码:
@using DotNetNuke.Entities.Tabs @{ // 获取当前DNN页面的原生对象 var dnnPage = TabController.Instance.GetTab(CmsContext.Page.Id); // 读取LargeIcon路径,空值判断避免报错 var bannerImageUrl = dnnPage?.LargeIcon; } @if (!string.IsNullOrEmpty(bannerImageUrl)) { <img src="@bannerImageUrl" alt="页面横幅" /> }
如果需要处理图片路径的绝对URL转换(比如相对路径转绝对路径),可以额外使用DNN的UrlUtils.ResolveUrl方法:
@using DotNetNuke.Common.Utilities // ... var bannerImageUrl = !string.IsNullOrEmpty(dnnPage?.LargeIcon) ? UrlUtils.ResolveUrl(dnnPage.LargeIcon) : null;
内容的提问来源于stack exchange,提问作者Aaron - Wolf X Machina
相关产品推荐
相关产品推荐

