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

Asp.Net多站点地图菜单标题/描述不显示问题排查及解决

解决ASP.NET站点地图标题/描述无法加载Resx资源的问题

我刚碰到了和你一模一样的情况:要做一个独立的FAQ菜单,用了单独的faq.sitemap和FAQ.resx资源文件,但菜单的标题和描述全是空的。先理清楚你的场景:

你的项目结构

~/MySite
├── /App_GlobalResources/
│   └── FAQ.resx
├── /App_Pages/FAQ/
│   ├── faq.aspx
│   └── faq.sitemap

你最初的faq.sitemap代码

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/App_Pages/FAQ/Test.aspx" title="$Resources:FAQ,FAQTest" description="$Resources:FAQ,FAQTestDescription">
    <siteMapNode url="~/App_Pages/FAQ/Test/Testdoc.pdf" title="$Resources:FAQ,FAQTestDoc" description="$Resources:FAQ,FAQTestDocDescription" />
  </siteMapNode>
</siteMap>

你之前怀疑是不是要把FAQ.resx移到和站点地图同目录,或者要额外配置资源路径?其实都不用!问题的核心是你没在站点地图的根节点启用本地化功能。

正确的配置方式

只需要在<siteMap>标签里加上enableLocalization="true"就可以了:

<siteMap enableLocalization="true" xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/App_Pages/FAQ/Test.aspx" title="$Resources:FAQ,FAQTest" description="$Resources:FAQ,FAQTestDescription">
    <siteMapNode url="~/App_Pages/FAQ/Test/Testdoc.pdf" title="$Resources:FAQ,FAQTestDoc" description="$Resources:FAQ,FAQTestDocDescription" />
  </siteMapNode>
</siteMap>

添加这个属性后,ASP.NET会自动识别App_GlobalResources下的FAQ.resx资源文件,正确加载标题和描述的内容,完全不需要调整资源文件的位置或者额外配置路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:57:48