8

我的页面在标题中有特殊字符以进行正确的排版,例如它说 Exchange '07 Groups" 带有正确的撇号,而不是单引号。撇号的 HTML 实体是‘

所以,我发现如果我从 VB 设置页面标题,标题显示得很好,但是一旦更新面板更新 HTML 实体被重新编码并错误地显示为“Exchange ‘07 Groups”

所以这是我的代码,我只需设置页面标题,然后是更新面板和更新它的按钮......

<script runat="server">
    Protected Sub Page_Load(...) Handles Me.Load
       Page.Title = "Exchange &#8216;07 Groups"
    End Sub

    Protected Sub uxLnkDoClick(ByVal sender As Object, ByVal e As System.EventArgs)
        uxLitLoaded.Text = "Loaded!"
    End Sub
</script>

<!DOCTYPE html>
<html>
<head runat="server"></head>
<body>
<form id="form1" runat="server">
    <asp:ScriptManager runat="server"></asp:ScriptManager>    
    <asp:UpdatePanel runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:LinkButton runat="server" ID="uxLnkDo" OnClick="uxLnkDoClick" Text="Do Something" />
            <asp:Literal runat="server" ID="uxLitLoaded" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="uxLnkDo" />
        </Triggers>
    </asp:UpdatePanel>
</form>
</body>
</html>

关于这个还能做什么?

4

5 回答 5

1

我使用 SM(服务标记,而不是商标的 TM)也遇到了同样的情况,我们用 . 设置页面标题Page.Title = "My Company &#8480";。它在回发时重新编码。

我们所做的是在我们静态添加的页面头中 < title >My Company &#8480;< /title >

像魅力一样工作。

于 2011-05-25T19:06:49.927 回答
1

在设置页面标题的代码中,将文本包装在 Server.HtmlDecode 中:

Page.Title = Server.HtmlDecode("Exchange &#8216;07 Groups")
于 2011-02-07T15:54:49.000 回答
0

它显示不正确的原因是因为 .Net 试图保证安全并且 HTML 对标题进行编码(以防止可能的多种类型的攻击)。

在 ASP.Net MVC 中,您现在可以使用 Html.Raw() 方法。至于直接的 ASP.net,我不知道该方法是什么。

于 2010-12-13T16:29:35.053 回答
0

添加此检查

if(!Page.IsPostBack)
{
Page.Title = "Exchange &#8216;07 Groups"
}
于 2010-12-29T10:39:11.227 回答
0

或者你可以简单地在 html 中设置 title 属性,如果它不是动态的!

于 2010-12-31T19:28:42.313 回答