声音在Asp.Net计时器中不起作用

声音在Asp.Net计时器中不起作用,asp.net,ajax,audio,timer,Asp.net,Ajax,Audio,Timer,这是有效的 <embed height="100" width="100" src="WindowsStartup.wav" /> 但这是行不通的 <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:Timer ID="Timer1" runat="server" Interval="4000"> <embed heigh

这是有效的

<embed height="100" width="100" src="WindowsStartup.wav" />

但这是行不通的

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="4000">
    <embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>


如何修复此问题?

问题源是您正在服务器控件中嵌套
嵌入
标记:

<asp:Timer ID="Timer1" runat="server" Interval="4000">
    <%-- This should be placed outside --%>
    <embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>
若要解决此问题,请将
embed
标记置于控件标记之外,因为服务器控件标记内的任何内容都可能保留给它,并且可能不会呈现其中的纯HTML标记,但某些能够保存HTML模板的属性除外(例如
ItemTemplate


这是上述标记的渲染输出:

<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', [], [], [], 90, '');
//]]>
</script>

<embed height="100" width="100" src="WindowsStartup.wav" />
<span id="Timer1" style="visibility:hidden;display:none;"></span>

//
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<embed height="100" width="100" src="WindowsStartup.wav" />
<asp:Timer ID="Timer1" runat="server" Interval="4000">
</asp:Timer>
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', [], [], [], 90, '');
//]]>
</script>

<embed height="100" width="100" src="WindowsStartup.wav" />
<span id="Timer1" style="visibility:hidden;display:none;"></span>