Cómo poner controles dentro de diferentes marcadores de posición de contenido sin usar el formulario

Situación: tengo una página maestra que tiene 3 marcadores de posición de contenido pero no tiene un servidor runat de formulario. En mi Login.aspx trato de llenar esos marcadores de posición, pero no me permite sin la etiqueta del servidor runat del formulario y una vez que agrego más de un formulario nuevamente, me muestra: "Una página puede tener solo una etiqueta de formulario del lado del servidor. "

aquí está mi código:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="DWDS_Lotus_Care_Final.Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
    <form id="formUser" runat="server">
            <p>
                <asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label>
                <asp:Button ID="btnLogout" runat="server" Text="Logout" />
            </p>
    </form>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <form id="form1" runat="server">
    <table style="width: 100%">
        <tr>
            <td style="width: 93px">
                UserName :
            </td>
            <td style="width: 139px">
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
            </td>
            <td style="width: 307px">
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="txtUserName" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 93px">
                Password :</td>
            <td style="width: 139px">
        <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
            </td>
            <td style="width: 307px">
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtPassword" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 93px">
                &nbsp;</td>
            <td style="width: 139px">
        <asp:Button ID="btnSubmit" Text="Submit" runat="server" 
            onclick="btnSubmit_Click" />
        &nbsp;&nbsp;
        <asp:Button ID="btnClear" Text="Clear" runat="server" 
            onclick="btnClear_Click" />
            </td>
            <td style="width: 307px">
        <asp:LinkButton ID="linkRegister" Text="Register" runat="server"></asp:LinkButton>
            </td>
        </tr>
    </table>
        </p>
    </form>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="server">

</asp:Content>

aquí está la fuente maestra

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs"     Inherits="DWDS_Lotus_Care_Final.Site1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <title>Consistent</title>
    <link href="http://fonts.googleapis.com/css?family=Bitter" rel="stylesheet" type="text/css" />
        <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
        <div id="wrapper">
        <div id="header">
            <div id="logo">

            </div>
        </div>
            <div id="menu">
                <ul>
                    <li><a href="#">Login</a></li>
                    <li><a href="#">About</a></li>
                    <li><a href="#">Portfolio</a></li>
                    <li class="last"><a href="#">Contact</a></li>
                </ul>
            </div>
            <div id="page">



        <%--Here is the sidebar--%>
            <div id="sidebar" style="background-color:#CCCCCC">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
                </asp:ContentPlaceHolder>
                    <h3>Links to Other Hospitals</h3>
                    <div class="date-list">
                        <ul class="list date-list">
                            <li class="first"><span class="date">Sunway</span> <a href="#">Sunway Piramid</a></li>
                            <li><span class="date">KPJ</span> <a href="#">Kajang Care Centre</a></li>
                            <li><span class="date">HCC</span> <a href="#">Health Care Center</a></li>
                            <li><span class="date">AlphaH</span> <a href="#">Alpha Health Center</a></li>
                            <li><span class="date">UPC</span> <a href="#">Bangsar Hospital</a></li>
                            <li class="last"><span class="date">TPM</span> <a href="#">Technology Park Hospital</a></li>
                        </ul>
                    </div>
                <br class="clearfix" />
            </div>



            <%--Here is the Content--%>
            <div id="content">
                <h2>Welcome to Lotus Care</h2>

                <div class="box">
                     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

                     </asp:ContentPlaceHolder>
                </div>
                <div class="box">
                    <asp:ContentPlaceHolder ID="ContentPlaceHolder3" runat="server">

                     </asp:ContentPlaceHolder>
                </div>
                <br class="clearfix" />
            </div>





            <br class="clearfix" />
        </div>
    </div>
    <div id="footer">
        </div>
</body>

preguntado el 03 de mayo de 12 a las 08:05

pegue el archivo fuente de la página maestra (aspx) -

no puede usar más de una etiqueta de formulario y el marcador de posición de contenido debe estar dentro de la etiqueta de formulario -

Coloque la etiqueta del formulario en la página maestra y elimínela de los marcadores de posición:

Sí, soy consciente de eso, pero una vez que quiero poner controles en el marcador de posición de contenido, me dice que lo ponga en forma con la etiqueta del servidor runat. así que solo puedo tener un formulario en un marcador de posición de contenido, pero ¿qué pasa con los demás? -

así que use div o paneles en lugar de formularios -

3 Respuestas

Página principal:

<form runat="server">
   <%-- use form tag only in Master page.--%>
 <div id="content">
 <h2>Welcome to Lotus Care</h2>
 <div class="box">
  <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

  </asp:ContentPlaceHolder>
  </div>
  <div class="box">
  <asp:ContentPlaceHolder ID="ContentPlaceHolder3" runat="server">

  </asp:ContentPlaceHolder>
  </div>
  <br class="clearfix" />
 </div>
</form>

Pagina de contenido:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <%-- don't use Form tag here..--%>
  <table style="width: 100%">
  </table>
</asp:Content>

contestado el 03 de mayo de 12 a las 08:05

Esto es lo que hago:

Usaré div o paneles para esta situación.

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<div>
//Place some controls here    
</div>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div>
//Put some controls here 
</div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="server">
<div>
//Put some more controls here
</div>
</asp:Content>

contestado el 03 de mayo de 12 a las 08:05

Muchas gracias codificador. La solución de Ashwini Verma funcionó. Puse solo un formulario dentro de la página maestra y puse todo el marcador de posición de contenido dentro. En mi Login.aspx simplemente los usé sin ningún formulario, div o panel. - paquet

En VS2017, puede usar el marcador de posición de contenido sin etiqueta de formulario. Usar asp.net 4.6.2

contestado el 12 de mayo de 17 a las 08:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.