【问题标题】:Form tag on master page and Content pages母版页和内容页上的表单标签
【发布时间】:2015-06-28 05:44:28
【问题描述】:

我有一个包含一个母版页和多个内容页的 ASP.NET 应用程序。

这是母版页的开始

<body>
<form runat="server">
    <asp:ScriptManager runat="server">
        <Scripts>
            <%-- Scripts Omitted --%>
        </Scripts>
    </asp:ScriptManager>
            .
            .
            .
            .
            .

现在,我有一个注册页面,其中包含要提交的表单。这是开始

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<br />
<form id="Form1" runat="server">
<div class="register">
    <br />
            .
            .
            .

每当我尝试运行Register.aspx 页面时,它都会给我错误:A page can have only one server-side Form tag.,我知道这是因为我在母版页上有一个表单标签。现在,如果我尝试从母版页中删除表单标签(我认为这是不必要的),我得到错误:Control 'ctl01' of type 'ScriptManager' must be placed inside a form tag with runat=server.

我的问题是:如何在不删除ScriptManager 的情况下在主页面和内容页面上使用Form 标签。或者有没有其他方法可以做到这一点?

【问题讨论】:

    标签: asp.net visual-studio-2012 master-pages


    【解决方案1】:

    只需从您的内容页面中删除表单标签 - 母版页上的表单标签就足够了。您需要将母版页上的 ContentPlaceHolder 标记放在表单中才能使其正常工作。

    【讨论】:

    • 即使我有表单要提交?
    • 是的。该表单已经存在,因为它位于母版页上。
    • 那么我也应该从控件中删除runat=server 吗?
    • 没有。除了从您的注册(和其他内容)页面中删除 &lt;form runat="server"&gt; 之外,其他所有内容都保持不变。
    猜你喜欢
    • 2014-02-02
    • 2012-06-21
    • 2013-02-08
    • 2013-02-12
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多