2009-08-28 3 views
5

У меня есть главная страница с формой (runat = "server"). Однако на вложенной странице у меня есть 2 формы. Сначала для смены пароля, а второй для отправки пользовательских данных ... Оба должны существовать с отдельными кнопками отправки.Проблема с главной страницей и вложенными формами

Я попытался приложить соответствующие поля с тегами формы, но у меня есть ошибка, когда закрытые формы не разрешены .... Как я могу достичь своей цели?

Спасибо!

ответ

4

ASP.NET поддерживает только одну форму на странице (она эмулирует настольные сеансовые формы). Вероятно, вам нужно оставить форму на главной странице и иметь 2 щелчка для кнопок на странице содержимого. Вам также может потребоваться указать ValidationGroup для ваших элементов управления и кнопок, чтобы они не мешали, если у вас есть некоторые валидаторы.

0

У вас может быть только одна тега <> на странице ASPX. Когда вы используете главную страницу, у нее уже есть тег runat = "server"> <. Вы не можете использовать тег < form> на своих вложенных страницах. Что вы можете сделать, это добавить свой контент на вложенную страницу в этот тег. < жерех: Content ID = "Content1" ContentPlaceHolderID = "ContentPlaceHolder1" Runat = "Сервер"> </жерех: Content>

0

Вы можете иметь несколько форму на странице WebForms, но только 1 может иметь runat- «сервер» атрибут и Runat = „сервер“ форма не может иметь никаких вложенных форм Один из вариантов, которые могли бы работать для вас:.

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled</title> 
</head> 
<body> 
    <div id="header> 
     <h1>My Site</h1> 
     <form id="SearchForm" action="search.aspx" method="post"> 
      <!--your search form html inputs (on server controls)--> 
     </form> 
    </div> 

    <!-- the standard webforms form used for server controls etc--> 
    <form id="form1" runat="server"> 

      <asp:ContentPlaceHolder ID="SearchBody" runat="server"> 
      </asp:ContentPlaceHolder> 

    </form> 
</body> 
</html> 

Вы также можете посмотреть на PostBackUrl techinique:

http://msdn.microsoft.com/en-us/library/ms178140.aspx

0

Просто добавьте <form runat="server"> в начале вашей главной страницы после <body> тега и внутри, который положил ваш <asp:content></asp:content>.

Ex. MyMasterPage.master страница

<% master ... %> 
<html> 
<head> .... </head> 
<body> 
<form runat="server"> 
. 
. 
. 
<div> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 

</asp:Content> 
</div> 
. 
. 
. 
</form> 
</body> 
</html> 

Нестер Страница: MyPage.cs

<% page ... %> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <asp:Button ID="testButton" runat="server" Text="Sample Button" Width="135px" /> 
</asp:Content> 

В этом случае вы можете решить вашу проблему

1

Как вы уже сформироваться в мастер-странице, вы не будете возможность добавления любой формы на вложенную страницу, может быть только один тег формы на странице,

вместо создания двух разных форм на вложенной странице, Невозможно создать отдельный два разных div, стол и т. Д.

что заставляет вас принимать форму на вложенной странице

Смежные вопросы