2013-03-18 55 views
2

Masterpage.aspx頁面只能有一個服務器端的Form標籤。

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 

    </asp:ContentPlaceHolder> 
    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'>  
    </script> 
    <script src="Chrome.js" type="text/javascript"></script> 
    </head> 
    <body> 
    <form id="Master" runat="server"> 
     <table style="width:987px; margin:auto; height: 86px;"> 
     <tr style="background-color:#FFFFFF"> 
     <td class="style2"> 
      <img src="images/logo.jpg" alt="" width="235" height="73" />&nbsp; 
      </td> 
      <td style="vertical-align:middle;"class="style1"> 
      <div style="float:right; width:153px; height: 22px;"> 
      &nbsp;<asp:TextBox ID="TextBox1" runat="server" Height="20px" 
              style="margin-left: 0px" Width="140px"> 
       </asp:TextBox> 
       </div> 
       <a href="">Forget Password?</a> </span></span> 
       </td> 
       <td class="style33"> 
       <div style="float:right; width:157px; height: 20px; margin-right: 1px;"> 
      <asp:TextBox ID="TextBox2" runat="server" Height="20px" 
              style="margin-left: 0px; margin-top: 
              Width="147px"></asp:TextBox> 
             </div> 

       <a href="Registration.aspx">New User Registration</a> </span> 
           </td> 
           <td class="style40"> 
      <div style="height: 67px; width: 81px;"> 
      &nbsp<asp:Button ID="btnlogin" runat="server" style="color:White; background-color:#404040;font-family:Verdana;font-size:10pt; height: 29px; margin-top: 12px;" Text="Login" onclick="btnlogin_Click1" /></div> 
           </td> 
          </tr> 
         </table> 
        </td> 
       </tr> 
       <tr style="background-color:#207DA8"> 
        <td class="style39"> 
        </td> 
        <td class="style39"> 
        </td> 
       </tr> 



     <script type="text/javascript"> 

      cssdropdown.startchrome("chromemenu") 

      </script> 
        </td> 
       </tr> 

             <img alt="" src="images/rgt.jpg" style="width: 471px; height: 247px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </td> 
           </tr> 
           <tr style="vertical-align=top;background-color=#D4D3D9"> 
            <td style="height:1;"> 
            </td> 
           </tr> 
          </tbody> 
         </table> 
         </tbody> 
         </table> 
     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
    </asp:ContentPlaceHolder> 
    </form> 
    </body> 
    </html> 

RegisterPage.aspx

<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="Registration.aspx.cs" ValidateRequest="false" Inherits="Paragraphreader.Registration" %> 
    <asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <script src="jquery.validate.js" type="text/javascript"></script> 
    <script src="jquery.validation.js" type="text/javascript"></script> 
    <script> 
    $("#Register").submit(function() { 
     return $(this).validation(); 
     alert("submitted"); 
    }); 

</script> 
<script> 
    function validate() { 

     var a = 0, rdbtn = document.getElementsByName("gender"); 
     for (i = 0; i < rdbtn.length; i++) { 
      if (rdbtn.item(i).checked == false) { 
       a++; 
      } 
     } 

     if (a == rdbtn.length) { 
      document.getElementById("RadioButtonList1").style.border = "2px solid red"; 
      return false; 
     } else { 
      document.getElementById("RadioButtonList1").style.border = ""; 
      return true; 
     } 

    } 

</script> 

    <link href="Career.css" rel="stylesheet" type="text/css" /> 
    <link href="Chrome.css" rel="stylesheet" type="text/css" /> 
    <link href="Styles.css" rel="stylesheet" type="text/css" /> 
    <form id="Register" runat="server">//A page can have only one form tag 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="FormUpdatePanel" runat="server"> 
    <ContentTemplate> 

我收到錯誤(A頁面只能有一個服務器端COF在編譯RegisterPage.aspx.In母版頁中我有一個表格標籤和服務器端代碼 在註冊頁面我有一個表單標籤和服務器端code.how以避免此錯誤

回答

6

主頁不應該包含form標籤一般因爲它們只能用作內容頁面的基本佈局。從主頁面刪除form標記,錯誤將消失。

如果您想爲所有頁面定義一個通用的「登錄」部分(這似乎是您的意圖),您可以改爲創建UserControl來執行此操作。然後,您將在Master頁面中定義一個節來包含此用戶控件,確保Login UserControl的ContentPlaceHolder始終以內容頁面的內容頁form封閉。這樣,當您提交表單時,觸發了btnlogin_Click1點擊事件。

結論:重新排列頁面的方式是每頁有一個form標記,因爲ASP.NET不允許有多個頁面,並嘗試在內容頁面中定義表單,而不是在母版頁中定義表單。

+0

該代碼很好地工作 – user2132564 2013-03-18 15:37:19

+0

爲什麼我們只需要一個? – Imad 2014-12-02 09:34:32

+0

@lmad可能需要多於一個'form',但是如果它們是服務器端表單,ASP.NET將會拋出一個錯誤;換句話說,如果在頁面呈現時你有多個'

',你會得到一個異常。只要沒有「runat =」server「'set屬性,您就可以在頁面中創建多個表單。這是ASP.NET框架本身的限制。 – Icarus 2014-12-02 18:04:22

相關問題