一个页面只能有一个服务器端表单标签,但我需要两个

时间:2015-01-25 17:08:11

标签: c# asp.net

目前我的ASP.NET Web应用程序正在使用母版页,嵌套母版页和内容页。在嵌套母版页上,我有一个用于导航链接的内容占位符,另一个用于主要内容。我之所以有两个原因的原因是因为我的主页面已经确定了其余页面的固定格式,而且我使用的是嵌套的主页,因为我需要不同类型的导航链接,用于我网站中使用的不同角色。但是,对于导航链接,LinkBut​​ton用于注销按钮,因此它要求我使用带有runat =“server”的表单标签,以便我能够运行该页面。但是,在我的内容页面中,我还需要一个表单runat =“server”标记作为我的主要内容。 :-(有没有人有想法如何解决这个问题?我想坚持使用多个内容占位符,所以微小的更改不会影响整个页面。

无论如何,这是我的主页

中的代码片段
<asp:Content ID="Content1" ContentPlaceHolderID="navigationlinks" runat="server">
<form id="navForm" runat="server">
    <a class="toggleMenu" href="#">
        <img src="images/nav_icon.png" alt="" />
    </a>
    <ul class="nav" id="nav">
        <li class="current"><a href="UserHome.aspx">Home</a></li>
        <li><a href="UserCompetition.aspx">Competition</a></li>
        <li><a href="UserGallery.aspx">Gallery</a></li>
        <li class="dropdown">
            <a class="dropdown-toggle" data-toggle="dropdown"     href="#">Discussions
            </a>
            <ul class="dropdown-menu">
                <li><a href="UserDiscussionCreate.aspx">Create Discussion</a></li>
                <li><a href="UserDiscussionView.aspx">View Discussion</a></li>
            </ul>
        </li>
        <li><a href="UserSubmission.aspx">Submission</a></li>
        <li><a href="UserResults.aspx">Results</a></li>
        <li><a href="UserMyAccount.aspx">My Account</a></li>
        <div class="clear"></div>
    </ul>
    <script type="text/javascript" src="js/responsive-nav.js"></script>
</form>

<asp:Content ID="Content3" ContentPlaceHolderID="Content1" runat="server">
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder>
</asp:Content>

ContentPlaceHolder1用于内容页面中的主要内容。因此,即使已经在“navigationallinks”中使用表单标记,我也需要另一个表单标记

1 个答案:

答案 0 :(得分:1)

  

在我的内容页面中,我还需要一个表单runat =“server”标记作为我的主要内容。

您已经拥有它,因为此页面有一个包含服务器端表单标签的母版页! 如果您有一个包含

的母版页
<form runat="server">...</form>

使用该母版页的所有页面都有该表单,无需再在页面中添加它!

修改

只需删除任何页面或嵌套母版页中的所有表单标记,然后将其添加到包含所有元素的母版页。

在具有<body>标记的母版页内,正文后面添加<form runat="server">标记并在</body>之前关闭它。并删除所有其他表单标记。