8

適切なタイポグラフィのためにタイトルに特殊文字を含むページがあります。たとえば、一重引用符ではなく、適切なアポストロフィを使用して Exchange '07 Groups" と表示されます。アポストロフィの HTML エンティティは次のとおりです。‘

そのため、VB からページ タイトルを設定すると、タイトルは問題なく表示されますが、更新パネルが更新されるとすぐに HTML エンティティが再エンコードされ、「Exchange ‘07 グループ」として誤って表示されることがわかりました。

だから、これが私のコードで、ページタイトル、更新パネル、更新ボタンを設定するだけです...

<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

ページタイトルを設定するコードで、テキストをServer.HtmlDecodeでラップします。

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

ページタイトルを。で設定したSM(商標のTMではなくサービスマーク)でも同じ状況でしたPage.Title = "My Company &#8480";。ポストバック時に再エンコードしました。

私たちが行ったことは、静的に追加したページヘッドにあります < title >My Company &#8480;< /title >

チャームのように働いた。

于 2011-05-25T19:06:49.927 に答える
0

または、動的でない場合は、htmlでtitleプロパティを設定するだけです。

于 2010-12-31T19:28:42.313 に答える
0

このチェックを追加

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

正しく表示されない理由は、.Net が安全を確保し、タイトルを HTML エンコードしようとしているためです (考えられる複数の種類の攻撃を防ぐため)。

ASP.Net MVC では、Html.Raw() メソッドを使用できるようになりました。ストレート ASP.net に関しては、メソッドがどうなるかわかりません。

于 2010-12-13T16:29:35.053 に答える