首页 > 解决方案 > ASP.NET - 从 Web.sitemap 文件输出尖括号

问题描述

我正在使用转发器来创建目录。数据来自 Web.sitemap 文件。

站点中的一页是 about List<T>,因此站点地图节点如下所示:

<siteMapNode url="~/path-to-page" title="List&lt;T&gt;"/>

此特定节点的输出变为:

<a href="/path-to-page">List<t></t></a>

尖括号变成了无意义的 HTML 标记。

我尝试了另外两个字符实体,但都没有输出为实际的尖括号。输出与上面相同。

title="List&#60;T&#62;"
title="List&#x3C;T&#x3E;"

在我进入并找出某种string.Replace解决方案或其他东西之前,我想知道我是否缺少在站点地图文件中放置尖括号以便正确输出的其他方法。

PS ItemTemplate 刚刚有:

<asp:HyperLink runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>'>
</asp:HyperLink>

标签: asp.netweb.sitemap

解决方案


当我逐步浏览结果时,我意识到尖括号不是以一种奇怪的方式输出,而是实际上作为尖括号输出,这就是为什么它们看起来像 HTML 并产生了无意义的<t>标签。

我只需要HtmlEncode输出:

<asp:HyperLink runat="server" 
    NavigateUrl='<%# Eval("Url") %>' 
    Text='<%# Server.HtmlEncode(Eval("Title").ToString()) %>'>
</asp:HyperLink>

推荐阅读