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
相关产品推荐
相关产品推荐

