代码之家  ›  专栏  ›  技术社区  ›  Chris Barr

UpdatePanel似乎重新编码了页面标题中的字符?

  •  8
  • Chris Barr  · 技术社区  · 15 年前

    我有一些页面的标题中有特殊字符,以便于正确的排版,例如,它说交换'07组“与一个适当的撇号,而不是一个单独的引用。撇号的HTML实体是 ‘

    因此,我发现如果我从VB设置页面标题,标题显示得很好,但是一旦更新面板更新,HTML实体就会被重新编码并错误地显示为“Exchange&8216;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>
    

    5 回复  |  直到 14 年前
        1
  •  1
  •   Tim Stone    14 年前

    在要设置页面标题的代码中,将文本换行服务器.htmlcode:

    Page.Title = Server.HtmlDecode("Exchange &#8216;07 Groups")
    
        2
  •  1
  •   xmorera    14 年前

    我也有同样的情况与SM(服务商标,而不是商标商标商标)的情况一样,我们用它来设置页面标题 Page.Title = "My Company &#8480";

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

    很有魅力。

        3
  •  0
  •   MunkiPhD    14 年前

    它显示错误的原因是.Net试图安全,而HTML对标题进行编码(以防止可能出现的多种类型的攻击)。

        4
  •  0
  •   yasirmturk    14 年前

    添加此支票

    if(!Page.IsPostBack)
    {
    Page.Title = "Exchange &#8216;07 Groups"
    }
    
        5
  •  0
  •   maqk    14 年前

    推荐文章