asp.net中的母版页内的AJAX脚本管理器

时间:2013-04-05 08:25:49

标签: asp.net ajax scriptmanager

我在主页下面的页面中使用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标签。”

我不知道该怎么做,谢谢你的帮助

3 个答案:

答案 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