2009-08-28 58 views
5

我有掌握頁面的表單(runat =「server」)。但是在嵌套頁面中,我有兩種形式。 首先是更改密碼,第二個是提交用戶數據... 這兩個都必須存在,並具有單獨的提交按鈕。母版頁和嵌套的表單問題

我試圖用形式標籤包含適當的字段,但我得到了一個錯誤,附上的表格是不允許的......我怎樣才能實現我的目標?

謝謝!

回答

4

ASP.NET僅支持每頁一個表單(它模擬桌面會話表單)。可能您需要的是將表單保​​留在主頁面中,並在內容頁面上爲按鈕設置2個Click處理程序。您可能還需要爲您的控件和按鈕指定ValidationGroup,以便它們不會干擾您是否有一些驗證程序。

0

你可以在ASPX頁面只有一個< form>標籤。當您使用母版頁時,它已經有一個<形式runat =「server」>標籤。您不能在嵌套頁面中再次使用< form>標籤。你可以做的是將你的內容添加到這個標籤的嵌套頁面中。 < ASP:內容ID = 「內容1」 ContentPlaceHolderID = 「ContentPlaceHolder1」 的Runat = 「服務器」> </ASP:內容>

0

你可以有一個web表單頁面上的多個形式,但是隻有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

只需在<body>標記之後在主頁面的起始處添加<form runat="server">,然後在裏面放置您的<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

正如你已經在母版頁組成,你會不會能夠在嵌套頁面中添加任何表單,每頁只能有一個表單標記,而不是在嵌套頁面01中創建兩種不同的表單,而不是在嵌套頁面中創建兩種不同的表單,而不是在嵌套頁面中創建兩種不同的表單,而不是在嵌套頁面中創建兩種不同的表單你不能創建分開的兩個不同的div,表格等

你在嵌套頁面中採取什麼樣的形式