0

我正在开发一个站点,其中将使用 youtube.com 站点提供的 HTML 代码将 youtube 视频添加到 asp.net 页面。当我运行该程序时,会在网页中显示 youtube 视频。但奇怪的是,当我将鼠标移到视频显示区域时,页面回发发生了。当我在调试模式下运行程序时,我能够找到它。

为了准确重现该场景,我正在编写我在项目中完成的步骤。

1) 在 vi​​sula studio 2010 > Open asp.net web application project (with c# as language) 2) 添加一些页面,比如 cat.aspx 3) 在 cat.aspx 中编写如下代码

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="lblVideo" runat="server"></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</form>

4) 在 cat.aspx.cs 中,在 page_load 中甚至写下以下行

lblVideo.Text = "<iframe width=\"620\" height=\"349\" src=\" http://www.youtube.com/embed/WoTsE7pbuKg \" frameborder=\"0\" allowfullscreen>< /iframe>";

5)您可以替换 youtube.com 给出的上述内容,但请务必设置“http:”并像我一样设置“用\”转义。(要获取任何 youtube 视频的 HTML 代码,请访问 www.youtube.com ,点击任意视频或名曲,视频下方会出现一个菜单“分享”,点击它,会出现另一个选项“嵌入”,点击它,你会看到代码)

6)现在运行你的网络应用项目,你可以看到,youtube视频显示出来了。

7)现在在Page_load事件中设置断点运行,现在将鼠标移到视频显示区域,您可以看到每次鼠标进入视频显示区域,都会发生回发。

8)我在firefox和InternetExplorer中安装了最新的flash,这个问题只在firefox和IE中发生,在chrome中没有。而这个问题只有在我们使用 Updatepanel 时才会发生。我还发现,每次控件点击代码隐藏时,页面不回发(IsPostBack)都是错误的。就像第一次请求页面一样,我们如何在地址栏中键入 url 并按 enter

我尝试使用 asp:PostBackTrigger 和 asp:AsyncPostBackTrigger 两者都没有解决问题,因为发生的不是回发,而是新页面请求

非常感谢任何试图帮助或提供解决方案的人。

4

0 回答 0