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

在Razor视图中使用OR运算符实现Umbraco多站点首页筛选

Umbraco多站点获取指定类型首页的正确实现

你的原代码存在Lambda表达式语法错误,|| 后面重复声明了参数 x =>,导致逻辑无法正确执行。以下是修正后的实现方案:

基础修正版

直接修正Lambda表达式的写法,确保在同一个参数下判断两个别名条件:

var homePage = Model.Root().FirstOrDefault(x => x.ContentType.Alias == "XXXX" || x.ContentType.Alias == "YYYY");

更易维护的版本

如果后续可能新增首页类型,可以把允许的别名存入数组,用Contains判断,提升代码可扩展性:

var allowedHomeAliases = new[] { "XXXX", "YYYY" };
var homePage = Model.Root().FirstOrDefault(x => allowedHomeAliases.Contains(x.ContentType.Alias));

多站点精准定位版

多站点场景下,Root()会返回所有站点的根节点,若要确保获取当前请求对应的站点首页,可结合Site()方法定位当前站点后再查询:

// 获取当前站点的根节点
var currentSite = Model.Site();
// 在当前站点范围内查找指定类型的首页
var homePage = currentSite.DescendantsOrSelf().FirstOrDefault(x => x.ContentType.Alias is "XXXX" or "YYYY");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:22:29