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

Kentico MVC 如何在_Layout.cshtml中动态获取首页URL

Kentico MVC 内置了对应的页面URL生成能力,可以完全动态获取首页路径,不需要硬编码,具体实现方式如下:

步骤1:在布局页顶部引入所需命名空间并注入服务

在你的 _Layout.cshtml 头部添加以下代码:

@using Kentico.Content.Web.Mvc
@inject IPageUrlRetriever PageUrlRetriever
@using CMS.DocumentEngine
@using CMS.SiteProvider

步骤2:修改导航栏的首页a标签

你可以选择两种实现方案,按需选用:

  • 方案1:直接调用站点默认首页(推荐,适配多语言、多站点场景)
    直接替换你原来的a标签代码即可:

    <a href="@PageUrlRetriever.Retrieve(TreeProvider.RootNodes[SiteContext.CurrentSiteID]).AbsolutePath" title="SamedWear" class="logo">SamedWear</a>
    
  • 方案2:指定页面类型查询首页(更精准,避免根节点指向调整导致失效)
    先在a标签上方加查询逻辑,再绑定href:

    @{
        // 请将下面的MedioClinic.Home替换为你实际的首页页面类型编码
        var homePage = DocumentHelper.GetDocuments("MedioClinic.Home")
                        .OnCurrentSite()
                        .TopN(1)
                        .Published()
                        .FirstOrDefault();
    }
    <a href="@(homePage != null ? PageUrlRetriever.Retrieve(homePage).AbsolutePath : Url.Content("~/"))" title="SamedWear" class="logo">SamedWear</a>
    

方案优势

这种动态生成的方式会自动读取Kentico后台的页面配置,后续你在后台修改首页的URL别名、更换首页指向的页面、或者开启多语言功能,都不需要修改前端代码,URL会自动同步更新。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:30:00