我在主页下面的页面中使用Ajax。 我的脚本管理器的位置有问题。我不希望脚本管理器适用于所有页面,仅适用于一个页面。
这是母版页:
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
这是我要向其添加脚本管理器的页面
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="TextBox1" runat="server" Width="120"></asp:TextBox>
<asp:NumericUpDownExtender
ID="NumericUpDownExtender1" runat="server" TargetControlID="TextBox1" Maximum="9" Minimum="1" Width="120">
</asp:NumericUpDownExtender>
</asp:Content>
当我运行它时,这个问题就出现了:“类型'ScriptManager'的控件'ContentPlaceHolder1_ScriptManager1'必须放在带有runat = server的表单标签内。”
所以我在互联网上读到,我必须将内容放在主页中的表格标签中,如下所示:
<div>
<form id="form1" runat="server" style="height: 25px">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</form>
</div>
但是当我这样做时会出现另一个问题: “一个页面只能有一个服务器端的Form标签。”
我不知道该怎么做,谢谢你的帮助
答案 0 :(得分:0)
在Asp.net中,您不能拥有更多表单标签。而不是有很多表单,你只有一个包含所有内容的大表单。
在主人:
<body>
<form id="form1" runat=server>
<asp:ContentPlaceHolder runat="server" ID="MainContent" />
</form>
</body>
在ContentPlaceHolder中:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
'your code here'
</asp:Content>
在所有文件中使用搜索来检查您是否有多个表单标记。
答案 1 :(得分:0)
问题是因为我在此页面中有另一个表单。但不是表单中的表单,为什么我不能在母版页中有多个表单?
答案 2 :(得分:-1)
将script manager
放入contentplace holder
。