0

空白のページを作成し、次の内容を追加して、ページが正しく実行されるようにしました。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    </asp:UpdatePanel>

次に、次のように変更しました。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
    <!--</asp:UpdatePanel>-->

更新パネル内に「-->」リテラルを含めることができないというエラーが発生するのはなぜですか!?

ありがとう!

4

2 に答える 2

8

これは間違っています:

<!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>-->

正解です:

<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    </asp:UpdatePanel>--%>

編集:

ASP.NET は、ページ内のコード/コントロール/html を完全に無効にするために使用できる「サーバー側コメント」と呼ばれるあまり知られていない機能をサポートしています。ASP.NET のサーバー側のコメントは、<%-- --%> を使用して区切られます。

主な違いは、クライアント側のコメントでは、コメント内のコンテンツを無視するのはブラウザーであるということです。クライアント側のコメント内のコード/コントロールはサーバー上で実行され、ブラウザーに送信されます。そのため、それらの内部でサーバー エラーが発生すると、ページの実行がブロックされます。

于 2012-04-11T16:44:45.777 に答える
2

のようなクライアント側のコメント<!--は、サーバー側のコントロールの解析には影響しません。したがって、ページが解析されるとき、パーサーはまだ UpdatePanel を処理しており、パーサーには次のように見えます。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->     
<!--</asp:UpdatePanel>

また、パーサーは、タグ間の内部コンテンツを処理する方法を理解していません。サーバー側のコメントを使用する必要があり、パーサーはパネルを無視します。

<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>
于 2012-04-11T16:50:22.820 に答える